我对算法和获取Group by的最新索引的方法感到困惑。 我有这样的查询。
SELECT hasil_kmbg AS RESULT,
EXTRACT(MONTH
FROM tgl_check) AS MONTH,
EXTRACT(YEAR
FROM tgl_check) AS YEAR
FROM perkembangan
WHERE no_pasien=11
GROUP BY MONTH,
id_kmbg DESC
这是查询的结果
|Result|Month|Year|
-------------------
|3 |1 |2013|
|1 |1 |2013|
|5 |1 |2013|
|1 |2 |2013|
|1 |3 |2013|
and so on
问题是,我如何在第1个月获得结果为3的结果?我不想在第1个月中显示其他结果,除了3(最新的,我通过desc订购)。
答案 0 :(得分:0)
由于您已在id_kmbg
子句中包含group by
,因此每月会获得多行。我想你想要max()
函数:
select max(hasil_kmbg) as Result, EXTRACT(MONTH FROM tgl_check) as Month,
EXTRACT(YEAR FROM tgl_check) as Year
from perkembangan
where no_pasien=11
group by Month, Year;
答案 1 :(得分:0)
我认为你正在寻找这个:
SELECT hasil_kmbg AS RESULT,
EXTRACT(MONTH
FROM tgl_check) AS MONTH,
EXTRACT(YEAR
FROM tgl_check) AS YEAR
FROM perkembangan
WHERE no_pasien=11
ORDER BY id_kmbg DESC
LIMIT 1
我的预感是你在这里不需要GROUP BY(因为你是通过ID DESC订购的)。
如果您需要分组,则可能需要重新选择hasil_kmbg。