繁体   English   中英

返回具有相同值的最大行数的值

[英]Return the values of max count of rows with the same values

我有table_schedule(id,instructorNumber,time,date,cpNumber,user_id);

是否可以输出具有相同最高出现次数和相同值的讲师编号,时间等值?

抱歉,我是sql的新手,所以我希望有人可以帮助我进行查询

只需对“相同值比较”所需的所有字段进行分组,然后按desc计数(因此,出现次数最多的结果将排在第一位),然后排在第一位。

select 
instructorNumber, time, date, cpNumber
from table_schedule
group by instructorNumber, time, date, cpNumber
order by count(*) desc
LIMIT 1

如果您想要多个结果,则可以将其用作主查询的联接。

首先对要比较和计数的值进行分组。 获取最大数量(在MySQL中,您可以使用LIMIT)。 然后再次进行相同的分组查询,并仅获取具有最大计数的结果。 使用GROUP_CONCAT获取字符串中的ID列表。

select instructorNumber, time, date, cpNumber, user_id, group_concat(id) as ids
from table_schedule
group by instructorNumber, time, date, cpNumber, user_id
having count(*) =
(
  select count(*)
  from table_schedule
  group by instructorNumber, time, date, cpNumber, user_id
  order by count(*) desc limit 1
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM