SQLite:Count GROUP_BY语句产生的类似Count(*)行数
我不太擅长SQL,我有一个非常特殊的要求要做 我的桌子看起来像这样:SQLite:Count GROUP_BY语句产生的类似Count(*)行数,sql,sqlite,Sql,Sqlite,我不太擅长SQL,我有一个非常特殊的要求要做 我的桌子看起来像这样: FOO BAR ----+---- foo1 bar1 foo2 bar3 foo1 bar1 foo1 bar1 foo2 bar3 foo4 bar3 foo3 bar2 foo2 bar4 foo5 bar4 我很容易用一个简单的数字来计算每个不同的“条”条目的数量 SELECT bar, COUNT(*) as barcount FROM table GROUP BY bar ORDER BY barc
FOO BAR
----+----
foo1 bar1
foo2 bar3
foo1 bar1
foo1 bar1
foo2 bar3
foo4 bar3
foo3 bar2
foo2 bar4
foo5 bar4
我很容易用一个简单的数字来计算每个不同的“条”条目的数量
SELECT bar, COUNT(*) as barcount FROM table GROUP BY bar ORDER BY barcount
这让我
BAR barcount
----+----
bar1 3
bar2 1
bar3 3
bar4 2
但我试图实现的是有一个表格,我知道有多少“条”的条数为1,有多少条的条数为2倍,有多少条的条数为3等等
我需要的结果是,为了简单起见:
barcount occurences
--------+-----------
1 1
2 1
3 2
是否可以在单个SQL查询中执行此操作,或者我需要依赖一些代码?您可以将查询包装到另一个查询中:
select barcount, count(*) as occurences
from
(
SELECT bar, COUNT(*) as barcount
FROM your_table
GROUP BY bar
) tmp
group by barcount
SELECT barcount, COUNT(*) AS occurences
FROM (SELECT bar, COUNT(*) as barcount
FROM mytable
GROUP BY bar) t
GROUP BY barcount
ORDER BY barcount
如果需要嵌套聚合,则必须使用派生表(或公共表表达式):
select barcount, count(*) as occurrences
from
(
SELECT bar, COUNT(*) as barcount
FROM table
GROUP BY bar
) as dt
group by barcount
ORDER BY barcount