mysql分组问题

时间:2010-09-28 11:41:21

标签: mysql group-by

我有下表:

date1              date2       sc   cash    date
"2010-09-20"    "2010-09-21"    202 300 "2010-03-01"
"2010-09-20"    "2010-09-21"    202 600 "2010-08-01"
"2010-09-20"    "2010-09-21"    202 670 "2010-08-20"
"2010-09-20"    "2010-09-21"    202 710 "2010-09-01"
"2010-09-20"    "2010-09-21"    202 870 "2010-09-21"
"2010-09-21"    "2010-09-22"    199 300 "2010-03-01"
"2010-09-21"    "2010-09-22"    199 600 "2010-08-01"
"2010-09-21"    "2010-09-22"    199 670 "2010-08-20"
"2010-09-21"    "2010-09-22"    199 710 "2010-09-01"
"2010-09-21"    "2010-09-22"    199 870 "2010-09-21"

(date1,date2)(cash,date)进行分组的内容是date = max(date <= date1)

date1              date2       sc   cash    date
"2010-09-20"    "2010-09-21"    202 870 "2010-09-21"
"2010-09-21"    "2010-09-22"    199 870 "2010-09-21"

1 个答案:

答案 0 :(得分:1)

你需要的是使用 HAVING 子句...我只是假设你在每一行都有一个id ..(如果你没有,你将不得不修改我的查询,但它会更难= D)

SELECT date1,date2,sc,cash,date
FROM mytable 
WHERE id IN (SELECT id
             FROM mytable GROUP BY date1,date2
             HAVING max(date)>=date1)

我在Postgresql中测试过它并且工作正常。我还没能在MySql中测试它

祝你好运