【发布时间】:2017-06-27 19:07:34
【问题描述】:
我有一个如下所示的 SQLite 表:
ID_TABLE POINTS_A_TABLE POINTS_B_TABLE
id number id_a points_a id_b points_b
-------------- ---------------- ----------------
smith 1 smith 11 smith 25
gordon 22 gordon 11 gordon NULL
butch 3 butch 11 butch 26
sparrow 25 sparrow NULL sparrow 44
white 76 white 46 white NULL
使用以下命令
SELECT id,
avg(points_a)
FROM (SELECT id_a AS id, points_a FROM points_a_table
UNION ALL
SELECT id_b AS id, points_b FROM points_b_table)
GROUP BY id
ORDER BY avg(points_a) DESC;
我可以获得与每个名字相关的平均分数 (more details here)
id avg(points_a)
white 46.0 [(46+0)/2]
sparrow 44.0 [(0+44)/2]
butch 18.5 [(11+26)/2]
smith 18.0 [(11+25)/2]
gordon 11.0 [(11+0)/2]
现在我想将生成的列id 与ID_TABLE 中ID_TABLE.number LESS THAN 26 的对应列number 匹配。结果应该是(number|average):
76 46.0 [(46+0)/2]
25 44.0 [(0+44)/2]
3 18.5 [(11+26)/2]
76 18.0 [(11+25)/2]
22 11.0 [(11+0)/2]
如何通过结合新指令与以前的指令来在一个查询中完成所有操作?
【问题讨论】:
标签: sql database sqlite subquery