,所以我有这个表:SQL组由一列
ID INITIAL_DATE TAX A 18-02-2012 105 A 19-02-2012 95 A 20-02-2012 105 A 21-02-2012 100 B 18-02-2012 135 B 19-02-2012 150 B 20-02-2012 130 B 21-02-2012 140
和我需要的是,为每个不同的ID,有史以来最高的税。如果该TAX出现两次,我想要INITIAL_DATE最高的记录。
这是查询我:
SELECT ID, MAX (initial_date) initial_date, tax FROM t t0 WHERE t0.tax = (SELECT MAX (t1.tax) FROM t t1 WHERE t1.ID = t0.ID GROUP BY ID) GROUP BY ID, tax ORDER BY id, initial_date, tax
,但我愿意相信有分组这些记录的更好的方法。
有什么办法可以不按SELECT中的所有列进行分组?
您正在使用什么RBDMS? – Lamak 2012-02-21 12:55:57
Oracle数据库10g速成版版本10.2.0.1.0 – Oliveira 2012-02-21 13:46:16