SQL 查询 3 列,计数 1 并仅对另一列进行分组
SQL query 3 columns, count 1 and group only another one
这是我的table
names city food
jim | london | pizza
jim | london | burrito
anne | paris | croissant
tim | berlin | wurst
tim | berlin | schnitzel
tim | berlin | beer
我想按名称计算不同的城市和组,但只得到一个食物条目:
jim, 2, pizza
anne, 1, croissant
tim, 3, wurst
但这行不通
SELECT DISTINCT name, food, COUNT(city) AS cnt
FROM mytable
GROUP BY name
ORDER BY cnt DESC;
最佳
约尔格
根据结果尝试如下所示,看来您只需要 max() 聚合函数与您的现有查询
select name, max(food), COUNT(city) AS cnt
FROM mytable GROUP BY name
这是我的table
names city food
jim | london | pizza
jim | london | burrito
anne | paris | croissant
tim | berlin | wurst
tim | berlin | schnitzel
tim | berlin | beer
我想按名称计算不同的城市和组,但只得到一个食物条目:
jim, 2, pizza
anne, 1, croissant
tim, 3, wurst
但这行不通
SELECT DISTINCT name, food, COUNT(city) AS cnt
FROM mytable
GROUP BY name
ORDER BY cnt DESC;
最佳 约尔格
根据结果尝试如下所示,看来您只需要 max() 聚合函数与您的现有查询
select name, max(food), COUNT(city) AS cnt
FROM mytable GROUP BY name