Mysql 搜索并返回不同的行及其重复计数
我已在以下URL上创建了SQL FIDLE,用于测试和构建查询: 考虑我的表的以下结构: TABLE1 +-------------------------+ | Username | Event ID | +-------------------------+ | Jhon | ABC | | Nick | ABC | | Hen | ABC | | Jhon | DEF | | Jhon | ABC | +-------------------------+ 请告诉我如何写这样的查询 谢谢Mysql 搜索并返回不同的行及其重复计数,mysql,count,where-clause,Mysql,Count,Where Clause,我已在以下URL上创建了SQL FIDLE,用于测试和构建查询: 考虑我的表的以下结构: TABLE1 +-------------------------+ | Username | Event ID | +-------------------------+ | Jhon | ABC | | Nick | ABC | | Hen | ABC | | Jhon | DEF | |
select min(username) as username,
eventid,
count(eventid) as event_count
from table1
where username = 'Jhon'
group by eventid
order by event_count desc
在MySQL中,您可以在使用分组依据时选择非聚合列。但在大多数DB引擎中,您需要对所有未按分组的列使用聚合函数。由于
username
不是按分组的,所以我选择了min
作为聚合函数。在MySQL中,您可以在使用按分组的同时选择一个非聚合列。但在大多数DB引擎中,您需要对所有未按分组的列使用聚合函数。因为username
不是按分组的,所以我选择min
作为聚合函数。
select min(username) as username,
eventid,
count(eventid) as event_count
from table1
where username = 'Jhon'
group by eventid
order by event_count desc