我有下表,它在一個月的不同日子里得到了讀數。請幫我填寫表格中的名稱、月最大值、月最小值、月平均值。
| 姓名 | 月 | 資料型別 | 資料值 |
|---|---|---|---|
| 拉吉 | 7 | 最大限度 | 100 |
| 拉吉 | 7 | 分鐘 | 20 |
| 拉吉 | 7 | 平均 | 80 |
| 拉吉 | 7 | 最大限度 | 90 |
| 拉吉 | 7 | 平均 | 75 |
| 拉吉 | 7 | 分鐘 | 30 |
| 拉吉 | 7 | 最大限度 | 95 |
| 拉吉 | 7 | 平均 | 70 |
| 拉吉 | 7 | 平均 | 65 |
| 拉吉 | 7 | 最大限度 | 85 |
| 拉吉 | 7 | 最大限度 | 96 |
| 拉吉 | 7 | 平均 | 70 |
| 拉吉 | 7 | 分鐘 | 35 |
| 拉吉 | 7 | 分鐘 | 45 |
| 拉吉 | 7 | 平均 | 84 |
| 開發者 | 8 | 最大限度 | 125 |
| 開發者 | 8 | 分鐘 | 35 |
| 開發者 | 8 | 平均 | 50 |
| 開發者 | 8 | 最大限度 | 120 |
| 開發者 | 8 | 分鐘 | 20 |
| 開發者 | 8 | 平均 | 70 |
| 開發者 | 8 | 最大限度 | 100 |
| 開發者 | 8 | 分鐘 | 45 |
| 開發者 | 8 | 平均 | 83 |
| 開發者 | 8 | 最大限度 | 70 |
| 開發者 | 8 | 分鐘 | 58 |
| 開發者 | 8 | 平均 | 95 |
| 開發者 | 8 | 最大限度 | 110 |
| 開發者 | 8 | 分鐘 | 60 |
| 開發者 | 8 | 平均 | 90 |
| 開發者 | 8 | 最大限度 | 115 |
| 開發者 | 8 | 分鐘 | 50 |
| 開發者 | 8 | 平均 | 67 |
| 開發者 | 8 | 最大限度 | 97 |
| 開發者 | 8 | 分鐘 | 45 |
| 開發者 | 8 | 平均 | 84 |
輸出應該是
| 姓名 | 月 | 最大月 | 月_分鐘 | 月平均 |
|---|---|---|---|---|
| 拉吉 | 7 | 100 | 20 | 74 |
| 開發者 | 8 | 125 | 20 | 77 |
我試過了
select name,month,max(data_value) as month_max,min(data_value) as month_min from table
這有助于一些事情。但我無法弄清楚如何實作每月平均值的邏輯。
uj5u.com熱心網友回復:
您可以使用條件聚合,如下所示:
SELECT name, month,
MAX(CASE data_type WHEN 'max' THEN data_value END) month_max,
MIN(CASE data_type WHEN 'min' THEN data_value END) month_min,
AVG(CASE data_type WHEN 'avg' THEN data_value END) month_avg
FROM table_name
GROUP BY name, month
ORDER BY name, month
查看演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/508618.html
標籤:sql甲骨文
上一篇:難以為oracleregexp_like命令模式匹配郵政編碼
下一篇:計算表中每一列的空值
