我的資料庫有這樣的布局:
| 學生卡 | 活動編號 | 已付款 |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 1 | 0 |
| 3 | 1 | 1 |
| 4 | 2 | 0 |
Payed 列是一個布林值,用于查看某人是否支付了是或否,而不是查看他/她現在支付了多少,因為您看到沒有人為活動 2 支付但如果我使用此命令
SELECT ActivityNumber, COUNT(*) as TimesPayed
FROM Registration
WHERE Payed = 1
GROUP BY ActivityNumber
MySQL 沒有在結果中顯示 ActivityNumber 2,因為計數為 0,但我想顯示計數為 0,我不知道如何,因為如果我洗掉 WHERE 子句,它將計為 1 而不是 0
我期望的結果是這樣的:
| 活動編號 | 支付時間 |
|---|---|
| 1 | 2 |
| 2 | 0 |
uj5u.com熱心網友回復:
使用有條件SUM的 .
詢問 -
SELECT ActivityNumber, sum( case when payed = 1 then 1 else 0 end ) as TimesPayed
FROM Registration
group by ActivityNumber
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/507365.html
標籤:mysql
