mysql - How can I query unique columns, conditionally choosing which row based on another column's value? -
i have following setup:
date | event | hits jan | | 0 jan | b | 2 jan | c | 0 feb | | 4 feb | b | 0 feb | c | 0
and i'm looking query returns:
- events unique (only return [jan | b | x] or [feb | b | x], not both)
- prioritize hits (so [jan | b | 2] beats [feb | b | 0])
- secondarily prioritize recent date ([feb | c | 0] beats [jan | c | 0])
i want query above table return:
feb | | 4 jan | b | 2 feb | c | 0
select (select edate stuff sx s.event=sx.`event` order sx.hits desc,sx.edate desc limit 1) date, s.event, (select hits stuff sx s.event=sx.`event` order sx.hits desc,sx.edate desc limit 1) hits stuff s group event order event
table stuff edate field defined date. not efficient large tables, works.
Comments
Post a Comment