我有一个像这样的简单表spatialite> select id, group_id, object_id, object, param from controlled_object;
1|1|150|nodes|0.5
2|1|186|nodes|0.5
3|2|372|nodes|1.0
第二列是group_id
.我想从表中检索所有条目,以及组的计数。
1|1|150|nodes|0.5|2
2|1|186|nodes|0.5|2
3|2|372|nodes|1.0|1
我认为交叉连接将是要走的路
SELECT
*
, cj.cnt
FROM
controlled_object
CROSS JOIN (
SELECT
COUNT(DISTINCT group_id) AS cnt
FROM
controlled_object
) AS cj
但这给了我
1|1|150|nodes|0.5|2|2
2|1|186|nodes|0.5|2|2
3|2|372|nodes|1.0|2|2
如何从表中获取所有行,包括特定组的计数?
最佳答案
使用计数器连接源数据,按 group_id 分组
select c.id, c.group_id, c.object_id, c.object, c.param,cnt from controlled_object c join
(select group_id,count(*) cnt from controlled_object group by group_id) p on c.group_id =p.group_id ;
对于大 table 不是很好的主意
对于大表来说,Sqlite 根本不是一个好主意:-)
关于sql - 如何从具有特定组计数的表中获取所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42482841/