... حيث عدد (العقيد)> 1
سؤال
ولدي مثل هذا الجدول:
+-----+-----+-------+
| id | fk | value |
+-----+-----+-------+
| 0 | 1 | peter |
| 1 | 1 | josh |
| 3 | 2 | marc |
| ... | ... | ... |
وأود الآن للحصول على كل مداخل والتي لها أكثر من قيمة واحدة. فإن النتيجة المتوقعة هي:
+-----+-------+
| fk | count |
+-----+-------+
| 1 | 2 |
| ... | ... |
وحاولت تحقيق ذلك من هذا القبيل:
select fk, count(value) from table where count(value) > 1;
ولكن لم أوراكل لا ترغب في ذلك.
وهكذا حاولت هذا ...
select * from (
select fk, count(value) as cnt from table
) where cnt > 1;
... من دون نجاح.
وأي أفكار؟
المحلول
استخدم شرط having
للمقارنة بين الركام.
وبالإضافة إلى ذلك، تحتاج إلى مجموعة من ما كنت تجميع ضد للاستعلام للعمل بشكل صحيح. ما يلي هو بداية، ولكن منذ كنت في عداد المفقودين مجموعة من بند لا يزال انها لن تعمل تماما. بالضبط ما تحاول أن العد؟
select fk, count(value)
from table
group by fk
having count(value) > 1;
لا تنتمي إلى StackOverflow