代码之家  ›  专栏  ›  技术社区  ›  3ashmawy

mysql分组问题

  •  0
  • 3ashmawy  · 技术社区  · 14 年前

    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 回复  |  直到 14 年前
        1
  •  1
  •   pleasedontbelong    14 年前

    你需要的是使用

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

    祝你好运