sql - 如何从具有特定组计数的表中获取所有行?

标签 sql sqlite count group-by

我有一个像这样的简单表
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/

相关文章:

c# - Gridview 数据源中的行数

mysql - COUNT 次获胜次数和 MAX 次使用 MySQL 获胜次数最多的参与者

php - 如何比较两个MySQL表并打印它们之间的差异?

c++ - '*' 标记之前的预期主表达式?

sql - 如何创建在日期更改时更新的 SQL 表

database - 如何限制 PouchDB 修订或永久删除修订

android - 将图像路径存储在 SQL 数据库中

c - SQLite3 存储不可读的文本

javascript - 类型错误 : number is not a function - Phonegap Sqlite

mysql - count 和 join 必须包含一个表中不存在于另一个表中的记录