Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite:Count GROUP_BY语句产生的类似Count(*)行数_Sql_Sqlite - Fatal编程技术网

SQLite:Count GROUP_BY语句产生的类似Count(*)行数

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

我不太擅长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 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