我的 mySQL 语句有问题。语句 1 会给我正确的答案,但是,当我将其缩放到语句 2 时,我得到的计数值明显偏离。我错过了 GROUP BY 的一个基本问题吗?
我真正需要的是返回最多 3 个计数以及完成的月份和年份。有解决办法吗?提前致谢!
编辑:使用 sql 模式 = full_group_by
SELECT
count(t2.rec_date), any_value(t2.rec_date)
FROM results t1
join patients t2
on t1.barcode = t2.barcode
WHERE test LIKE '%ssc%'
and year(rec_date) = 2017
and month(rec_date) = 2;
>>> 366, '2017-02-01'
SELECT
count(t2.rec_date) AS count,
any_value(rec_date)
FROM results t1
join patients t2
on t1.barcode = t2.barcode
WHERE test LIKE '%ssc%'
GROUP BY EXTRACT(YEAR_MONTH FROM run_date)
ORDER BY count DESC
LIMIT 3;
>>> 415, 2017-02-28
>>> 373, 2017-01-31
>>> 365, 2016-10-04