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

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -