{
  "assessmentTests": {
    "sql_test": {
      "name": "SQL ٹیسٹ",
      "desc": "فلٹرنگ، جوائنز، ایگریگیشن، سب کوئریز اور ونڈو فنکشنز پر 30 منظرنامے والے سوالات — معلوم کریں کہ آپ کی SQL مہارت اس سطح پر ہے جو نوکری کی پوسٹنگ میں SQL پروفیشنسی سے مراد ہوتی ہے۔",
      "recommendation": "آپ کی SQL مہارتوں کا پروفائل",
      "results": {
        "beginner": {
          "name": "ابتدائی",
          "desc": "آپ ایک کام کرنے والا SELECT سٹیٹمنٹ لکھ سکتے ہیں اور چند شرائط پر فلٹر کر سکتے ہیں، لیکن جو سوالات آپ سے چھوٹے وہ سنٹیکس کی بجائے NULL ہینڈلنگ اور جوائن میکینکس کے گرد مرکوز ہیں — کسی کالم کا NULL سے = کے ذریعے موازنہ، LEFT JOIN دراصل کیا محفوظ رکھتا ہے، BETWEEN کی حدود کیسے کام کرتی ہیں۔ یہ ڈیٹابیسز میں کمزور ہونے کی بات نہیں؛ یہ وہ مخصوص اصول ہیں جو ان لوگوں کو الجھاتے ہیں جنہوں نے SQL آزمائش اور غلطی سے سیکھی نہ کہ معیاری طریقے سے۔ یہ کام پر اہم ہیں کیونکہ ہر ایک وہ جگہ ہے جہاں کوئری ایک قابل قبول نظر آنے والی لیکن غلط قطاروں کی تعداد واپس کرتی ہے۔",
          "recommendation": "تین چیزوں سے شروع کریں، اسی ترتیب میں: WHERE col = NULL کبھی کچھ کیوں نہیں ملاتا (اور اس کی بجائے IS NULL ضروری ہے)، INNER JOIN غیر مماثل قطاریں کیسے چھوڑ دیتا ہے جبکہ LEFT JOIN انہیں رکھتا ہے، اور BETWEEN کی صحیح حدود کیا شامل کرتی ہیں۔ Mode Analytics کا SQL ٹیوٹوریل اور PostgreSQL ڈاکیومنٹیشن دونوں تینوں کو چلانے کے قابل مثالوں کے ساتھ بیان کرتے ہیں۔"
        },
        "intermediate": {
          "name": "درمیانی",
          "desc": "آپ روزمرہ کی رپورٹنگ کوئریز آرام سے سنبھال لیتے ہیں — جوائنز، GROUP BY، سیدھی سادی فلٹرنگ — اور معمول کے ڈیش بورڈ یا ایڈہاک تجزیے کے کام میں سست نہیں ہوں گے۔ یہاں سے ایڈوانسڈ تک کا فرق زیادہ تر اس میں ہے کہ جب کلازز آپس میں ملتے ہیں تو کیا ہوتا ہے: جوائن شدہ ٹیبل پر WHERE کلاز خاموشی سے LEFT JOIN کو واپس INNER JOIN میں بدل دیتا ہے، ایک جوائن جو ایگریگیٹ لاگو ہونے سے پہلے قطاروں کی تعداد بڑھا دیتا ہے، ایک NOT IN جو خاموشی سے کچھ نہیں لوٹاتا کیونکہ سب کوئری میں ایک NULL آ گیا۔ یہ وہ قسم کی غلطیاں ہیں جو فوری نظر سے گزر جاتی ہیں اور صرف اس وقت سامنے آتی ہیں جب کوئی کل کا موازنہ کسی دوسری رپورٹ سے کرتا ہے۔",
          "recommendation": "اس پر توجہ دیں کہ کلازز آپس میں کیسے تعامل کرتے ہیں نہ کہ ہر ایک اکیلے کیا کرتا ہے: LEFT JOIN کے دائیں طرف کے کالمز پر WHERE فلٹرنگ، ایگریگیٹ سے پہلے ون ٹو مینی جوائنز سے قطاروں کی ضرب، اور NULLs کی موجودگی میں NOT IN کیوں ٹوٹ جاتا ہے (EXISTS عام طور پر نہیں ٹوٹتا)۔ پھر HAVING بمقابلہ WHERE، کیونکہ یہ تقسیم ان لوگوں کو الجھاتی ہے جو پہلے سے دونوں کلازز الگ الگ جانتے ہیں۔"
        },
        "advanced": {
          "name": "ایڈوانسڈ",
          "desc": "یہ وہ سطح ہے جو زیادہ تر نوکری کی پوسٹنگز \"مضبوط SQL\" سے مراد لیتی ہیں۔ آپ ایک ملٹی جوائن کوئری پڑھتے ہیں اور چلانے سے پہلے اس کی قطاروں کی تعداد کا اندازہ لگا سکتے ہیں، آپ جانتے ہیں کہ نتیجہ کیوں بدلا نہ کہ صرف یہ کہ بدلا، اور آپ نیسٹڈ سب کوئری کی بجائے CTE یا ونڈو فنکشن استعمال کرتے ہیں جب یہ زیادہ واضح ٹول ہو۔ جو چیز اس بینڈ کو سب سے اوپر سے الگ کرتی ہے وہ کام کا دفاعی پہلو ہے: یہ جاننا کہ جب ٹائیز اہم ہوں تو کون سا رینکنگ فنکشن استعمال کرنا ہے، ٹرانزیکشن ہم وقت سیشن سے کیا الگ کرتی ہے، اور گمشدہ ON DELETE رول ڈیٹابیس کی سطح پر دراصل کیا کرتا ہے۔",
          "recommendation": "ان حصوں میں آگے بڑھیں جو اس ڈیٹا کی حفاظت کرتے ہیں جسے دوسرے لوگ بھی چھوتے ہیں: ٹائیز کے تحت RANK، DENSE_RANK اور ROW_NUMBER میں فرق، COMMIT دراصل کیا نظر آنے دیتا ہے اور کسے، اور DELETE پر فارن کی کا رویہ۔ The Index نیوز لیٹر یا SQL for Devs کے ونڈو فنکشنز اور ٹرانزیکشن آئسولیشن پر گہرے مضامین کو دونوں کے لیے اگلے قدم کے طور پر استعمال کریں۔"
        },
        "expert": {
          "name": "ماہر",
          "desc": "آپ نے ہر سیکشن میں سب سے اوپر اسکور کیا — فلٹرنگ اور NULL سیمینٹکس، جوائنز اور سیٹ آپریشنز، ایگریگیشن اور سب کوئریز، اور ونڈو فنکشنز، CTEs اور کنسٹرینٹس۔ عملی طور پر، اس کا مطلب ہے کہ آپ کو کسی اجنبی کی ملٹی جوائن رپورٹ کوئری دی جا سکتی ہے اور آپ بتا سکتے ہیں کہ یہ جو قطاروں کی تعداد لوٹاتی ہے وہ کیوں لوٹاتی ہے، نہ کہ صرف یہ کہ سنٹیکس کے مطابق کیا کرنی چاہیے، جو زیادہ مشکل اور زیادہ قیمتی مہارت ہے۔ اس سطح پر کوئری لینگویج شاذ و نادر ہی محدود کرنے والا عنصر ہوتی ہے؛ حد عام طور پر سکیما ڈیزائن یا اس کے نیچے موجود ڈیٹا کا سائز ہوتی ہے۔",
          "recommendation": "اب منافع ایگزیکیوشن پلانز اور ڈیزائن میں ہیں: کسی کوئری کو سست فرض کرنے سے پہلے EXPLAIN آؤٹ پٹ پڑھنا، انڈیکسنگ حکمت عملی کو مفت فائدے کی بجائے رائٹ کاسٹ کے مقابلے میں ایک تبادلے کے طور پر سمجھنا، اور نارملائزیشن کے فیصلے جو سکیما کی نشوونما کے ساتھ قائم رہیں۔ اگر آپ کسی کردار کے لیے اسکریننگ سے گزر رہے ہیں، تو SQL فیچرز کے نام گنوانے کی بجائے کسی کوئری بگ کی وضاحت کریں جیسے جوائن فین-آؤٹ یا NOT IN/NULL ٹریپ جو آپ نے پروڈکشن میں دریافت کیا — یہ صرف اصطلاحات نہیں بلکہ استدلال کا مظاہرہ کرتا ہے۔"
        }
      },
      "questions": [
        {
          "question": "ایک ٹیبل میں ایک nullable کالم age ہے۔ آپ SELECT * FROM users WHERE age = NULL چلاتے ہیں۔ یہ کتنی قطاریں واپس کرتا ہے، چاہے کئی قطاروں میں age کی قدر NULL ہو؟",
          "options": [
            {
              "icon": "",
              "label": "ہر وہ قطار جہاں age NULL ہو"
            },
            {
              "icon": "",
              "label": "صفر قطاریں"
            },
            {
              "icon": "",
              "label": "ایک خرابی"
            },
            {
              "icon": "",
              "label": "تمام قطاریں"
            }
          ]
        },
        {
          "question": "آپ SELECT DISTINCT department, role FROM employees چلاتے ہیں۔ DISTINCT کس چیز کی ڈپلیکیٹس ہٹاتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "department اور role کا ہر مجموعہ"
            },
            {
              "icon": "",
              "label": "صرف department کی نقل والی قدریں"
            },
            {
              "icon": "",
              "label": "صرف role کی نقل والی قدریں"
            },
            {
              "icon": "",
              "label": "کچھ نہیں؛ DISTINCT صرف ایک کالم پر کام کرتا ہے"
            }
          ]
        },
        {
          "question": "ایک کالم name کو WHERE name LIKE 'A_' سے فلٹر کیا گیا ہے۔ ان میں سے کون سی قدر میچ کرتی ہے: 'A'، 'Al'، 'Ana'، 'Ally'؟",
          "options": [
            {
              "icon": "",
              "label": "'A'"
            },
            {
              "icon": "",
              "label": "'Al'"
            },
            {
              "icon": "",
              "label": "'Ana' اور 'Ally'"
            },
            {
              "icon": "",
              "label": "چاروں قدریں"
            }
          ]
        },
        {
          "question": "ایک price کالم کو WHERE price BETWEEN 10 AND 20 سے فلٹر کیا گیا ہے۔ کیا وہ قطاریں شامل ہوتی ہیں جن میں price بالکل 10 یا بالکل 20 ہو؟",
          "options": [
            {
              "icon": "",
              "label": "نہیں، دونوں خارج ہیں"
            },
            {
              "icon": "",
              "label": "ہاں، دونوں شامل ہیں"
            },
            {
              "icon": "",
              "label": "صرف price = 10"
            },
            {
              "icon": "",
              "label": "صرف price = 20"
            }
          ]
        },
        {
          "question": "ایک ٹیبل orders میں 10 قطاریں ہیں، اور ان میں سے 3 میں shipped_date کی قدر NULL ہے۔ SELECT COUNT(*) FROM orders کیا واپس کرتا ہے، اور SELECT COUNT(shipped_date) FROM orders کیا واپس کرتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "10، پھر 10"
            },
            {
              "icon": "",
              "label": "7، پھر 7"
            },
            {
              "icon": "",
              "label": "10، پھر 7"
            },
            {
              "icon": "",
              "label": "10، پھر 3"
            }
          ]
        },
        {
          "question": "آپ SELECT name, salary FROM employees ORDER BY 2 DESC چلاتے ہیں۔ یہاں 2 سے کیا مراد ہے؟",
          "options": [
            {
              "icon": "",
              "label": "سنٹیکس کی غلطی"
            },
            {
              "icon": "",
              "label": "نتیجے کی دوسری صف"
            },
            {
              "icon": "",
              "label": "مستقل قدر 2، جو ٹائی بریکر کے طور پر استعمال ہوتی ہے"
            },
            {
              "icon": "",
              "label": "SELECT فہرست کا دوسرا کالم، یعنی salary"
            }
          ]
        },
        {
          "question": "معیاری SQL میں، 'Ana' || ' ' || 'Lee' کا نتیجہ کیا ہوتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "ایک syntax error"
            },
            {
              "icon": "",
              "label": "TRUE"
            },
            {
              "icon": "",
              "label": "'AnaLee'"
            },
            {
              "icon": "",
              "label": "'Ana Lee'"
            }
          ]
        },
        {
          "question": "ان میں سے کون سا WHERE status IN ('open', 'pending', 'review') کے بالکل برابر ہے؟",
          "options": [
            {
              "icon": "",
              "label": "WHERE status = 'open' AND status = 'pending' AND status = 'review'"
            },
            {
              "icon": "",
              "label": "WHERE status != 'open' OR status != 'pending' OR status != 'review'"
            },
            {
              "icon": "",
              "label": "WHERE status = 'open' OR status = 'pending' OR status = 'review'"
            },
            {
              "icon": "",
              "label": "WHERE status LIKE 'open,pending,review'"
            }
          ]
        },
        {
          "question": "customers میں 100 قطاریں ہیں؛ ان میں سے 20 نے کبھی آرڈر نہیں دیا۔ آپ SELECT c.id FROM customers c INNER JOIN orders o ON c.id = o.customer_id چلاتے ہیں۔ کیا وہ 20 صارفین جن کے کوئی آرڈر نہیں ہیں نتیجے میں ظاہر ہوتے ہیں؟",
          "options": [
            {
              "icon": "",
              "label": "ہاں، ہر ایک بار، جس میں o.id NULL دکھایا جاتا ہے"
            },
            {
              "icon": "",
              "label": "ہاں، لیکن صرف اگر وہ WHERE شق میں بھی ظاہر ہوں"
            },
            {
              "icon": "",
              "label": "نہیں"
            },
            {
              "icon": "",
              "label": "ہاں، orders میں ہر کالم کے لیے ایک بار نقل ہوتا ہے"
            }
          ]
        },
        {
          "question": "آپ ہر صارف چاہتے ہیں چاہے ان کے آرڈر ہوں یا نہ ہوں، تو آپ لکھتے ہیں SELECT c.id, o.total FROM customers c LEFT JOIN orders o ON c.id = o.customer_id WHERE o.total > 100۔ کیا یہ اب بھی صفر آرڈر والے صارفین واپس کرتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "نہیں، یہ INNER JOIN کی طرح برتاؤ کرتا ہے"
            },
            {
              "icon": "",
              "label": "ہاں، LEFT JOIN ہر صارف کو رکھتا ہے"
            },
            {
              "icon": "",
              "label": "ہاں، جس میں o.total کو 0 دکھایا جاتا ہے"
            },
            {
              "icon": "",
              "label": "نہیں، یہ RIGHT JOIN کی طرح برتاؤ کرتا ہے"
            }
          ]
        },
        {
          "question": "ایک employees ٹیبل میں ایک id کالم اور ایک manager_id کالم ہے جو کسی دوسری قطار کے id کی طرف اشارہ کرتا ہے۔ ہر ملازم کو اس کے مینیجر کے نام کے ساتھ درج کرنے کے لیے، آپ ٹیبل کو خود سے جوائن کرتے ہیں: SELECT e.name, m.name FROM employees e JOIN employees m ON e.manager_id = m.id۔ اس پیٹرن کو کیا کہتے ہیں؟",
          "options": [
            {
              "icon": "",
              "label": "ایک cross join"
            },
            {
              "icon": "",
              "label": "ایک recursive join"
            },
            {
              "icon": "",
              "label": "ایک self-join"
            },
            {
              "icon": "",
              "label": "ایک غلط query"
            }
          ]
        },
        {
          "question": "دو SELECT سوالات جن کے کالم ایک جیسے ہوں UNION سے ملائے جاتے ہیں۔ اگر دونوں سوالات ایک جیسی صف واپس کریں تو آخری نتیجے میں اس صف کی کتنی کاپیاں ظاہر ہوں گی؟",
          "options": [
            {
              "icon": "",
              "label": "ایک کاپی"
            },
            {
              "icon": "",
              "label": "دو کاپیاں"
            },
            {
              "icon": "",
              "label": "صفر کاپیاں"
            },
            {
              "icon": "",
              "label": "یہ اس پر منحصر ہے کہ کون سی query اسے پہلے list کرتی ہے"
            }
          ]
        },
        {
          "question": "Table sizes میں 3 صفیں ہیں اور colors میں 4 صفیں ہیں۔ SELECT * FROM sizes CROSS JOIN colors کتنی صفیں واپس کرتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "7"
            },
            {
              "icon": "",
              "label": "12"
            },
            {
              "icon": "",
              "label": "3"
            },
            {
              "icon": "",
              "label": "0"
            }
          ]
        },
        {
          "question": "orders میں آرڈر #100 کے لیے 1 صف ہے، اور order_items میں آرڈر #100 کے لیے 3 صفیں ہیں (ہر لائن آئٹم کے لیے ایک)۔ آپ SELECT o.id, o.total FROM orders o JOIN order_items i ON o.id = i.order_id WHERE o.id = 100 چلاتے ہیں۔ آرڈر #100 کے لیے کتنی صفیں واپس آتی ہیں؟",
          "options": [
            {
              "icon": "",
              "label": "3"
            },
            {
              "icon": "",
              "label": "1"
            },
            {
              "icon": "",
              "label": "4"
            },
            {
              "icon": "",
              "label": "0"
            }
          ]
        },
        {
          "question": "SELECT c.name, o.id FROM customers c RIGHT JOIN orders o ON c.id = o.customer_id ان میں سے کس کے برابر صفیں واپس کرتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "SELECT c.name, o.id FROM customers c INNER JOIN orders o ON c.id = o.customer_id"
            },
            {
              "icon": "",
              "label": "SELECT c.name, o.id FROM orders o LEFT JOIN customers c ON c.id = o.customer_id"
            },
            {
              "icon": "",
              "label": "SELECT c.name, o.id FROM customers c LEFT JOIN orders o ON c.id = o.customer_id"
            },
            {
              "icon": "",
              "label": "SELECT c.name, o.id FROM orders o CROSS JOIN customers c"
            }
          ]
        },
        {
          "question": "معیاری SQL میں، آپ SELECT department, name, AVG(salary) FROM employees GROUP BY department چلاتے ہیں۔ کیا یہ درست سوال ہے؟",
          "options": [
            {
              "icon": "",
              "label": "ہاں، department کے لحاظ سے grouping کافی ہے"
            },
            {
              "icon": "",
              "label": "نہیں، name کو aggregate کرنا یا GROUP BY میں ہونا ضروری ہے"
            },
            {
              "icon": "",
              "label": "ہاں، SQL ہر department کے لیے ایک name چن لیتا ہے"
            },
            {
              "icon": "",
              "label": "نہیں، AVG() کو GROUP BY کے ساتھ استعمال نہیں کیا جا سکتا"
            }
          ]
        },
        {
          "question": "آپ ایسے departments چاہتے ہیں جن کی اوسط تنخواہ 80000 سے زیادہ ہو۔ کون سی شق جمع شدہ قدر جیسے AVG(salary) پر grouping کے بعد فلٹر کرتی ہے — WHERE یا HAVING؟",
          "options": [
            {
              "icon": "",
              "label": "WHERE"
            },
            {
              "icon": "",
              "label": "کوئی بھی"
            },
            {
              "icon": "",
              "label": "کوئی نہیں؛ اس کے لیے subquery چاہیے"
            },
            {
              "icon": "",
              "label": "HAVING"
            }
          ]
        },
        {
          "question": "آپ SELECT salary * 1.1 AS new_salary FROM employees WHERE new_salary > 50000 لکھتے ہیں۔ کیا یہ چلتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "ہاں، WHERE میں SELECT کے aliases استعمال ہو سکتے ہیں"
            },
            {
              "icon": "",
              "label": "ہاں، لیکن صرف عددی aliases کے لیے"
            },
            {
              "icon": "",
              "label": "نہیں، filtered query میں AS منع ہے"
            },
            {
              "icon": "",
              "label": "نہیں، WHERE alias بننے سے پہلے چلتا ہے"
            }
          ]
        },
        {
          "question": "SELECT name FROM employees e WHERE salary > (SELECT AVG(salary) FROM employees WHERE department = e.department). یہ correlated subquery کیوں کہلاتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "یہ WHERE clause کی بجائے JOIN استعمال کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ outer query کا e.department استعمال کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ ایک سے زیادہ column واپس کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ outer query شروع ہونے سے پہلے ایک بار چلتا ہے"
            }
          ]
        },
        {
          "question": "ایک subquery SELECT manager_id FROM employees کچھ NULL اقدار کے ساتھ حقیقی ids واپس کرتا ہے۔ آپ SELECT name FROM employees WHERE id NOT IN (SELECT manager_id FROM employees) چلاتے ہیں۔ کیا ہوتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "یہ NULLs کو نظر انداز کر کے ہر non-manager واپس کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ صفر rows واپس کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ error دیتا ہے"
            },
            {
              "icon": "",
              "label": "یہ ہر employee واپس کرتا ہے"
            }
          ]
        },
        {
          "question": "SELECT name FROM customers c WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id). یہ کیا واپس کرتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "ہر وہ customer جس کے پاس کم از کم ایک آرڈر ہے"
            },
            {
              "icon": "",
              "label": "ہر customer"
            },
            {
              "icon": "",
              "label": "ایک error"
            },
            {
              "icon": "",
              "label": "صرف وہ customers جن کے پاس بالکل ایک آرڈر ہے"
            }
          ]
        },
        {
          "question": "آپ SELECT name, (SELECT order_id FROM orders WHERE customer_id = c.id) AS last_order FROM customers c لکھتے ہیں، اور ایک دیے گئے customer کے پاس orders میں 3 صفیں ہیں۔ جب یہ سوال چلتا ہے تو کیا ہوتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "یہ صرف پہلا واپس کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ تینوں کی comma سے الگ کی گئی list واپس کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ 3 rows واپس کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ runtime پر error دیتا ہے"
            }
          ]
        },
        {
          "question": "چار صفیں سب سے زیادہ اسکور کے لیے برابر ہیں۔ RANK() ORDER BY score DESC استعمال کرتے ہوئے، سب چاروں کو rank 1 ملتا ہے۔ اگلی صف کو کون سی rank ملتی ہے؟",
          "options": [
            {
              "icon": "",
              "label": "5"
            },
            {
              "icon": "",
              "label": "2"
            },
            {
              "icon": "",
              "label": "1"
            },
            {
              "icon": "",
              "label": "4"
            }
          ]
        },
        {
          "question": "چار صفیں سب سے زیادہ اسکور کے لیے برابر ہیں۔ DENSE_RANK() ORDER BY score DESC استعمال کرتے ہوئے، سب چاروں کو rank 1 ملتا ہے۔ اگلی صف کو کون سی rank ملتی ہے؟",
          "options": [
            {
              "icon": "",
              "label": "5"
            },
            {
              "icon": "",
              "label": "1"
            },
            {
              "icon": "",
              "label": "2"
            },
            {
              "icon": "",
              "label": "3"
            }
          ]
        },
        {
          "question": "SUM(amount) OVER (PARTITION BY region ORDER BY amount) ایک سوال میں شامل کیا جاتا ہے۔ یہاں PARTITION BY region کیا کرتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "یہ ہر region کے لیے running sum دوبارہ شروع کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ نتائج کو ایک ہی region تک فلٹر کرتا ہے"
            },
            {
              "icon": "",
              "label": "یہ rows کو ہر region کی ایک row میں سمیٹ دیتا ہے"
            },
            {
              "icon": "",
              "label": "یہ regions کو حروفِ تہجی کے لحاظ سے ترتیب دیتا ہے"
            }
          ]
        },
        {
          "question": "ROW_NUMBER() OVER (ORDER BY score DESC) پانچ صفوں پر لاگو کیا جاتا ہے، جن میں سے دو اسکور میں بالکل برابر ہیں۔ کیا دو صفوں کو کبھی ایک جیسی row number مل سکتی ہے؟",
          "options": [
            {
              "icon": "",
              "label": "ہاں"
            },
            {
              "icon": "",
              "label": "صرف اگر PARTITION BY بھی استعمال کیا جائے"
            },
            {
              "icon": "",
              "label": "یہ اس پر منحصر ہے کہ برابری کہاں آتی ہے"
            },
            {
              "icon": "",
              "label": "نہیں"
            }
          ]
        },
        {
          "question": "WITH high_earners AS (SELECT * FROM employees WHERE salary > 100000) SELECT department, COUNT(*) FROM high_earners GROUP BY department. high_earners کیا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "ایک common table expression (CTE)"
            },
            {
              "icon": "",
              "label": "database میں محفوظ ایک مستقل table"
            },
            {
              "icon": "",
              "label": "ایک view جو query کے بعد بھی برقرار رہتا ہے"
            },
            {
              "icon": "",
              "label": "ایک stored procedure"
            }
          ]
        },
        {
          "question": "ایک کالم PRIMARY KEY کے طور پر بیان کیا جاتا ہے۔ کیا آپ ایک صف داخل کر سکتے ہیں جہاں وہ کالم NULL ہو؟",
          "options": [
            {
              "icon": "",
              "label": "ہاں"
            },
            {
              "icon": "",
              "label": "ہاں، لیکن صرف ایک NULL row"
            },
            {
              "icon": "",
              "label": "نہیں"
            },
            {
              "icon": "",
              "label": "یہ column کی default value پر منحصر ہے"
            }
          ]
        },
        {
          "question": "کھلی transaction کے اندر، آپ ایک UPDATE چلاتے ہیں لیکن ابھی COMMIT نہیں چلایا ہے۔ ڈیٹا بیس کے دوسرے، الگ connection سے، کیا یہ update نظر آتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "ہاں، فوراً"
            },
            {
              "icon": "",
              "label": "صرف اگر دوسرا connection کوئی transaction کھولے"
            },
            {
              "icon": "",
              "label": "یہ اس پر منحصر ہے کہ کون سی table update ہوئی"
            },
            {
              "icon": "",
              "label": "نہیں، جب تک commit نہ ہو جائے"
            }
          ]
        },
        {
          "question": "products.category_id میں categories.id کو حوالہ دیتی ہوئی FOREIGN KEY constraint ہے۔ آپ categories سے ایک صف DELETE کرنے کی کوشش کرتے ہیں جس کے پاس ابھی بھی products اس کی طرف اشارہ کر رہے ہیں، کوئی ON DELETE rule بیان نہیں ہے۔ کیا ہوتا ہے؟",
          "options": [
            {
              "icon": "",
              "label": "products کا category_id، NULL پر set ہو جاتا ہے"
            },
            {
              "icon": "",
              "label": "حوالہ دینے والے products بھی delete ہو جاتے ہیں"
            },
            {
              "icon": "",
              "label": "DELETE مسترد ہو جاتا ہے"
            },
            {
              "icon": "",
              "label": "DELETE کامیاب ہو جاتا ہے، جس سے لٹکتے ہوئے حوالہ جات رہ جاتے ہیں"
            }
          ]
        }
      ],
      "optionOrderVersion": "f9e1314f9ea2bea2"
    }
  },
  "testNames": {
    "sql-test": "SQL ٹیسٹ"
  }
}
