簡體   English   中英

MYSQL在日期的多列中選擇最大值

[英]MYSQL Select max value in multi column in a date

假設我有一個名為“ bowlmark”的表,並且該表的摘要如下所示:(此表記錄了每個禮帽的保齡球標記)

這是樣本表摘要:

bowler_id---record_date---round1mark---round2mark
101---2018-06-02---100---164
102---2018-06-02---102---120
101---2018-06-03---150---124
103---2018-06-03---200---122

我想在每個記錄日中輸出最高分並顯示禮帽

對於上面的示例,我希望輸出為:

date:2018-06-02, bowler_id:101, highestmark: 164 
date:2018-06-03, bowler_id:103, highestmark: 200 . 

如何編寫此SQL查詢? 謝謝。

這有點丑陋,但我可以這樣進行:

SELECT b.bowler_id, a.* FROM (
  SELECT record_date, MAX(GREATEST(round1mark, round2mark)) AS greatest
  FROM bowlers
  GROUP BY record_date
) a
INNER JOIN bowlers b ON
    a.record_date = b.record_date AND
    a.greatest = GREATEST(b.round1mark, b.round2mark)

SQLFiddle在這里: http ://sqlfiddle.com/#!9/3718ec/17

您可以在子查詢上使用great和一個內部聯接以獲得最大舍入標記

  select   m.bowler_id, m.record_date
     , greatest(round, round2, round3, round4, round5, round6) highest_mark
  from bowlmark m 
  inner join (
    select record_date 
      , max(greatest(round, round2, round3, round4, round5, round6)) as max_round
    from bowlmark
    group by record_date 
  ) t on t.record_date = m.record_date 
        and greatest(round, round2, round3, round4, round5, round6) = t.max_round

無論如何,正確的數據庫標准化可以幫助您避免此類問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM