SQL для подсчета количества дубликатов в столбце с ГРУППОЙ ПО

#sql

Вопрос:

У меня есть таблица с именем table_a , которая выглядит следующим образом:

 Color Person Shape blue Jane circle orange Bob square blue Sally rectangle yellow Ted circle green Bill diamond yellow Barry circle blue Sally hexagon blue Mary circle  

Я хотел бы подсчитать количество людей ( person столбец), использующих один и тот же цвет, следующим образом:

 Color number_people blue 3 yellow 2  

Я хотел бы получить количество людей с одинаковым цветом кожи. Мой SQL выглядит следующим образом:

 SELECT  Color, COUNT(*) as number_people FROM  from table_a GROUP BY Color HAVING number_people gt; 1  

Это правильно? И, если да, есть ли лучший способ сделать это?

Спасибо!

Комментарии:

1. Я предполагаю, что вы хотите COUNT(DISTINCT person) as number_people вместо COUNT(*) этого, чтобы не считать Салли 2 людьми в синем.

Ответ №1:

 SELECT  table_a.Color, COUNT(b.primarykey) as number_people FROM  from table_a  join table_a b on (table_primarykey = b.primarykey) GROUP BY table_a.Color HAVING number_people gt; 1  

Комментарии:

1. Разве DISTINCT где-нибудь не должно быть? Кроме того, я сомневаюсь в необходимости JOIN А.

2. проверьте это! как еще ты можешь знать, тф, у меня нет твоей базы данных передо мной