2013-07-24 65 views
1

我對算法和獲取Group by的最新索引的方式感到困惑。 我有這樣的查詢。如何在mysql查詢中獲取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 

的結果的問題是,如何我只是得到結果是結果是3月份1?我不想在第一個月顯示其他結果,除了3(最近,我用desc命令)。

+1

您是否設法使其工作?如果您覺得答案可以解決您的問題,請不要忘記接受它。 –

回答

0

由於group by子句中包含id_kmbg,因此您每月獲得多行。我想你想的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; 
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。