Почему выберите * Вернуть только первую запись в группе? - PullRequest
0 голосов
/ 17 февраля 2020

Я изучаю предложения Group by и Having в выражении SQL. На следующей странице мне нужны все клиенты, чья страна содержит более 5 клиентов в базе данных.

Поэтому я использую

SELECT * 
FROM Customers 
GROUP BY Country 
HAVING COUNT(CustomerID) > 5

в https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_having

Но этот выбор возвращает только первую запись в группе, а не все записи в группе. Почему?

1 Ответ

3 голосов
/ 17 февраля 2020

Но выбор возвращает только первую запись в группе, а не все записи в группе. Почему?

Потому что одна строка на группу - это то, что GROUP BY делает .

Способ сделать то, что вы хотите сделать, это выяснить, какие страны иметь более 5 клиентов, а затем вернуть все записи из этих стран:

SELECT * FROM Customers WHERE Country IN
(SELECT Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 5)
...