Mysql

每天總飲酒量列

  • June 4, 2020

嘗試選擇一個表格,其中有一個列,其中客戶每天訂購的總飲料數由日期和飲料數量計算。例如。克勞德在 2020-1-12 共訂購了 10 杯飲料

drinker | odate      | total_drinks
Claude  | 2020-01-12 | 10 
Claude  | 2020-01-15 | 3

我如何壓縮我目前的陳述

在此處輸入圖像描述

不清楚。

表示什麼drink_no

你不應該試圖保持一個人在某一天喝了多少酒的“執行計數”。相反,只需儲存他們已經喝了另一種飲料,然後讓您的查詢進行“加起來”:

select 
 drinker
, odate
, count( odate ) total 
from table1
group by drinker, odate
order by drinker, odate ; 

+---------+------------+-------+
| drinker | odate      | total | 
+---------+------------+-------+
| Claude  | 2020-01-12 |     4 | 
| Claude  | 2020-01-15 |     2 | 
| Claude  | 2020-01-19 |     1 | 
| Claude  | 2020-04-04 |     1 | 
| Claude  | 2020-04-05 |     1 | 
| Claude  | 2020-04-12 |     1 | 
| Claude  | 2020-04-15 |     1 | 
| Claude  | 2020-04-16 |     1 | 
| Claude  | 2020-04-17 |     1 | 
| Claude  | 2020-04-18 |     1 | 
| Claude  | 2020-04-19 |     1 | 
| Claude  | 2020-04-20 |     1 | 
+---------+------------+-------+

另外,請告訴我 odate 是一個實際的日期數據類型。

永遠不要將 Date 值儲存在其他任何東西中。這樣做會使日期操作變得更加困難,並且可能會慢得多。

引用自:https://dba.stackexchange.com/questions/268478