আমার দুটি টেবিল আছে employee
এবং phones
। একজন কর্মীর 0 থেকে n ফোন নম্বর থাকতে পারে। আমি তাদের ফোন নম্বর সহ কর্মচারীর নাম তালিকা করতে চাই। আমি নীচের ক্যোয়ারীটি ব্যবহার করছি যা ভাল চলে runs
SELECT empname,array_agg(phonenumber) AS phonenumbers
FROM employee LEFT OUTER JOIN phones ON employee.empid = phones.empid
GROUP BY employee.empid
কর্মচারী টেবিলে প্রচুর পরিমাণে সারি থাকতে পারে। আমি একবারে কেবলমাত্র কিছু কর্মী আনতে চাই। উদাহরণস্বরূপ আমি 3 জন কর্মী তাদের ফোন নম্বর সহ আনতে চাই। আমি এই কোয়েরিটি চালানোর চেষ্টা করছি।
SELECT empname,array_agg(phonenumber) AS phonenumbers
FROM
(SELECT * FROM employee ORDER BY empname LIMIT 3 OFFSET 0) AS employee
LEFT OUTER JOIN phones ON employee.empid = phones.empid
GROUP BY employee.empid
তবে আমি এই ত্রুটি পেয়েছি। ERROR: column "employee.empname" must appear in the GROUP BY clause or be used in an aggregate function
দুটি প্রশ্নের মধ্যে কেবলমাত্র পার্থক্য হ'ল আমি যোগদানের আগে সারিগুলিকে সীমাবদ্ধ করতে পরবর্তীগুলিতে সাব কোয়েরিটি ব্যবহার করছি। আমি কীভাবে এই ত্রুটিটি সমাধান করব?