我的 SQL 请求中存在一些缺失行的问题。我想显示按值分组的出现次数,并且即使它们在间隔中没有值,表格也需要显示它们。
这是现在显示的内容
|---------------------|------------------|
| Category | Amount |
|---------------------|------------------|
| <= 0 | 34 |
|---------------------|------------------|
| ]0 - 1] | 18 |
|---------------------|------------------|
| > 2 | 25 |
|---------------------|------------------|
这就是我需要它显示的内容
|---------------------|------------------|
| Category | Amount |
|---------------------|------------------|
| <= 0 | 34 |
|---------------------|------------------|
| ]0 - 1] | 18 |
|---------------------|------------------|
| ]1 - 2] | 0 |
|---------------------|------------------|
| > 2 | 25 |
|---------------------|------------------|
到目前为止我的代码是:
SELECT t.range AS Category,
Count( * ) AS [Amount],
FROM (
SELECT value,
CASE
WHEN (value <= 0) THEN ' <= 0 '
WHEN (value > 0 AND value <= 1) THEN ' ]0 - 1]'
WHEN (value > 1 AND value <= 2) THEN ' ]1 - 2]'
WHEN (value > 2 ) THEN ' > 2 '
END AS range
FROM Table
)
t
GROUP BY t.range;
关于如何解决这个问题有什么想法吗?
谢谢你了!
最佳答案
只需执行多个查询,然后将它们全部合并:
SELECT ' <= 0 ' AS category, count(*) as Amount FROM MyTable WHERE value <= 0
UNION ALL
SELECT ' ]0 - 1]' AS category, count(*) FROM MyTable WHERE value > 0 AND value <= 1
UNION ALL
SELECT ' ]1 - 2]' AS category, count(*) FROM MyTable WHERE value > 1 AND value <= 2
UNION ALL
SELECT ' > 2 ' AS category, count(*) FROM MyTable WHERE value > 1 AND value > 2
关于sql - SQL 请求中缺少行,其中计数为 0(按值范围分组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366995/