我有一个表,其中有一列(只是为了简化问题)的值为0-23或 *。我想统计每个值0-23的出现次数,但将 * 视为所有其他值的出现次数,例如:
column_name
-------------
3
4
5
6
7
*
4
4
3
*
我想得到这样的东西:
column_name | count
--------------------
1 | 2
2 | 2
3 | 4
4 | 5
5 | 3
6 | 3
7 | 3
.....
我尝试了不同的计数和“分组”方法,但总是得到非常奇怪的结果。基本上这里的主要问题是当我需要在所有其他组中有一个值时,如何计数行。
3条答案
按热度按时间n53p2ov01#
您可以使用连续的
WITH
来执行此操作:第一个计算 * 出现次数的人。
第二步是计算每个数字的出现次数。
puruo6ea2#
您也可以使用嵌套语句,
6tr1vspr3#
您可以使用分析函数来计算值,其中 * 被替换为0到23之间的实际值:
使用您的样本数据:
...结果为:
...如果您排除Where子句,则将获得所有行(0 - 23),这些行的出现次数由REPLACE of * 用任意数字计算