[英]SQL Sub Queries - Listing data
希望我已經適當地寫了標題。
到目前為止,我所擁有的是:
SELECT event_id
FROM prize
WHERE place <= 3
問題如下:對於每個事件,在一行上列出可用於一等獎,二等獎和三等獎的獎金。
因此,我需要從PRIZE表中列出EVENT_ID。 然后將有三個單獨的列,分別顯示第一名,第二名和第三名。 預期數據如下:
| event_id | First | Second | Third |
| 101 | 120 | 60 | 30 |
| 102 | 10 | 5 | 2 |
| 103 | 100 | 60 | 40 |
| 401 | 1000 | 500 | 250 |
PRIZE表具有列出的信息:
+ ------------- + ---------- + ---------- +
| Event_id | Place | Money |
+ ------------- + ---------- + ---------- +
| 101 | 1 | 120 |
| 101 | 2 | 60 |
| 101 | 3 | 30 |
| 102 | 1 | 10 |
| 102 | 2 | 5 |
| 102 | 3 | 2 |
| 103 | 1 | 100 |
| 103 | 2 | 60 |
| 103 | 3 | 40 |
| 401 | 1 | 1000 |
| 401 | 2 | 500 |
| 401 | 3 | 250 |
| 401 | 4 | 100 |
| 401 | 5 | 50 |
| NULL | NULL | NULL |
+ ------------- + ---------- + ---------- +
15 rows
任何幫助表示贊賞
我們可以使用條件聚合函數將您的行旋轉為列。
select event_id,
max(case when place = 1 then money end) first,
max(case when place = 2 then money end) second,
max(case when place = 3 then money end) third
from prize
where event_id is not null
group by event_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.