在 SQLite 中,使用時如何為 1-10 范圍內的缺失數字填充 null Group By?我有一張桌子叫DataTest:
| 資料ID | 資料 |
|---|---|
| 1 | 50 |
| 2 | 38 |
| 2 | 48 |
| 4 | 38 |
| 5 | 48 |
| 8 | 39 |
| 9 | 50 |
| 9 | 60 |
| 10 | 90 |
如果我這樣做,SELECT theData FROM DataTest GROUP BY dataID;我會收到:
| 資料 |
|---|
| 50 |
| 48 |
| 38 |
| 48 |
| 39 |
| 60 |
| 90 |
如何更改查詢以生成如下最初缺失的第 3、6 和 7 行?
| 資料 |
|---|
| 50 |
| 48 |
| 無效的 |
| 38 |
| 48 |
| 無效的 |
| 無效的 |
| 39 |
| 60 |
| 90 |
uj5u.com熱心網友回復:
一種選擇使用遞回查詢來列舉表的下限和上限之間的所有數字,然后計算聚合:
with recursive ids (id, maxid) as (
select min(dataid), max(dataid) from mytable
union all
select id 1, maxid from ids where id < maxid
)
select i.id, max(t.thedata) max_data
from ids i
left join mytable t on t.dataid = i.id
group by i.id
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/525572.html
