我有一个带有以下架构和示例数据的SQLite数据库表:
Fruit| LBS| Time
-----------------------
Apple| 1| 00001
Apple| 2| 00002
Orange| 1| 00001
Banana| 3| 00004
我希望能够运行一个查询来分配/重载一列,即“Fruit”对另一列,“Time”,并在结果集中派生出一个膨胀/填充(默认)值:
Fruit| LBS| Time
-----------------------
Apple| 1| 00001
Apple| 2| 00002
Apple| 0| 00004
Orange| 1| 00001
Orange| 0| 00002
Orange| 0| 00004
Banana| 0| 00001
Banana| 0| 00002
Banana| 3| 00004
正如您所看到的,对于具有默认(空)值的每个唯一Fruit类型,重复Time的所有现有值。
我为不知道究竟叫什么而道歉;但我希望这个例子能说明我的观点。
答案 0 :(得分:2)
SELECT
f.Fruit,
COALESCE(x.LBS, 0),
t.Time
FROM (
( SELECT DISTINCT Fruit FROM your_table ) f
CROSS JOIN ( SELECT DISTINCT Time FROM your_table ) t
)
LEFT JOIN your_table x
ON f.Fruit = x.Fruit
AND t.Time = x.Time;