【发布时间】:2022-10-08 01:07:02
【问题描述】:
我有表格,其中包含性别、状态等列。
表值是这样的
| ID | Gender | Status |
|---|---|---|
| 1 | Male | A01 |
| 2 | Male | |
| 3 | Female | A02 |
| 4 | Female | |
| 5 | Unknown | |
| 6 | Male | |
| 7 | Female | |
| 8 | Unknown |
我要显示
| Gender | Status | Count |
|---|---|---|
| Male | A01 | 1 |
| Female | A02 | 1 |
| Unknown | 0 |
我试过了
SELECT
t3.Gender, t3.Status, COUNT(*) AS count
FROM
(SELECT DISTINCT
t1.Gender, t1.Status
FROM
Consumer AS t1
CROSS JOIN
Consumer AS t2
WHERE
t1.Status <> t2.Status
OR t1.Status <> t2.Status) AS t3
GROUP BY
t3.Gender, t3.Status
请帮助解决这个问题。谢谢
【问题讨论】:
-
所以计数仅适用于具有地位价值的性别?
-
我不明白在这里使用交叉连接。
-
目前尚不完全清楚您想要什么行为。您应该扩展您的示例以显示可能出现的各种可能的数据组合,然后显示您想要的结果。目前我可以给出十几个给出这些结果的查询,但不知道它们是否一般有用。
-
@MatBailie——一打?这似乎很多——可能是 3 或 4 个
标签: sql sql-server