我有table_schedule(id,instructorNumber,time,date,cpNumber,user_id);
是否可以以相同的值输出具有相同最高值的instructorNumber,time等的值?
抱歉,我是sql的新手,所以我希望有人可以帮我查询答案 0 :(得分:1)
只需按照您需要的所有字段进行分组"相同的值比较",按计数desc排序(所以最常出现的结果将是第一个),然后先取。
select
instructorNumber, time, date, cpNumber
from table_schedule
group by instructorNumber, time, date, cpNumber
order by count(*) desc
LIMIT 1
如果您想要多个结果,可以将其用作主查询的连接。
答案 1 :(得分:0)
首先按要比较的值和计数值进行分组。获取最大计数(在MySQL中,您可以使用LIMIT)。然后再次执行相同的group-by查询,并仅获取具有最大计数的结果。使用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
);