Поскольку Group by
является групповым значением, когда вы используете GROUP BY Category, Author
означает, что вам нужно group by
по Category
и Author
столбцу, так что есть шесть групп.
Запрос
select Category,Author
from t
group by Category,Author
Результаты
| Category | Author |
|----------|-----------|
| NW | account-1 |
| NW | account-2 |
| NW | account-3 |
| S | account-4 |
| S | account-5 |
| S | account-6 |
но если мы только сделаем group by Category
, есть две группы.
Запрос
select Category
from t
group by Category
[Результаты]
| Category |
|----------|
| NW |
| S |
Таким образом, вы можете попытаться получить столбец MAX
Sales group by Category
, затем присоединиться или связаться с Sales и Category
CREATE TABLE T(
Category varchar(5),
Author varchar(50),
Sales int
);
insert into t values ('NW','account-1', 10);
insert into t values ('NW','account-2', 20);
insert into t values ('NW','account-3', 30);
insert into t values ('S','account-4', 10);
insert into t values ('S','account-5', 50);
insert into t values ('S','account-6', 55);
Запрос 1 :
select * from t t1 where exists(
SELECT 1
FROM T tt
WHERE t1.Category = tt.Category
GROUP BY tt.Category
HAVING MAX(tt.Sales) = t1.Sales
)
Результаты
| Category | Author | Sales |
|----------|-----------|-------|
| NW | account-3 | 30 |
| S | account-6 | 55 |