SQL查找列中每种类型的总计数
我正在学习SQL,对于什么应该是一个简单的查询感到困惑。我有一张有以下图案的桌子:SQL查找列中每种类型的总计数,sql,Sql,我正在学习SQL,对于什么应该是一个简单的查询感到困惑。我有一张有以下图案的桌子: Id | Type ------------ 1 | Red 2 | Blue 3 | Blue 4 | Red .. 我想编写一个查询来返回一个表,该表统计每种类型的实例总数,并返回一个具有以下模式的表,例如,如果上面的表中12行出现“蓝色”,16行出现“红色”,则结果将是: Blue | Red ----------- 12 | 16 你可以这样做: S
Id | Type
------------
1 | Red
2 | Blue
3 | Blue
4 | Red
..
我想编写一个查询来返回一个表,该表统计每种类型的实例总数,并返回一个具有以下模式的表,例如,如果上面的表中12行出现“蓝色”,16行出现“红色”,则结果将是:
Blue | Red
-----------
12 | 16
你可以这样做:
SELECT Type, COUNT(*) FROM TABLE GROUP BY Type
如果希望在单独的列中查看类型,可以执行以下操作:
SELECT SUM(CASE WHEN Type = 'Blue' THEN 1 ELSE 0 END) AS Blue, SUM(CASE WHEN Type = 'Red' THEN 1 ELSE 0 END) AS Red FROM TABLE
只需将值放在单独的行中,并使用
分组方式
。这是一个非常好的解决方案,谢谢!我在一个prod表上运行了它,该表有50多列,其中包括少量blob列,并且所有文本列都是nvarhar2数据类型,但是在多列上使用它本身会对查询执行时间产生巨大影响@您能为这类表提供一种以列形式运行按值计数的最佳方法吗?