我有 3 列,我想計算 col1 中所有不同元素的 col2 = 0 AND col3 = 0 的次數。
前任:
| COL1 | COL2 | COL3 |
|---|---|---|
| α | 1 | 1 |
| α | 0 | 0 |
| 測驗版 | 0 | 0 |
| 伽瑪 | 3 | 2 |
| α | 3 | 4 |
| 伽瑪 | 0 | 0 |
| 三角洲 | 0 | 0 |
| 歐米茄 | 4 | 4 |
| 歐米茄 | 1 | 0 |
| α | 0 | 0 |
| 三角洲 | 0 | 0 |
預期結果:
| COL1 | COL2 | COL3 | 發生 |
|---|---|---|---|
| α | 0 | 0 | 2 |
| 測驗版 | 0 | 0 | 1 |
| 三角洲 | 0 | 0 | 2 |
| 伽瑪 | 0 | 0 | 1 |
| 歐米茄 | 0 | 0 | 0 |
我試過了,但它不作業:
SELECT DISTINCT col1, col2, col3, COUNT(*) FROM table1 WHERE col2 = 0 AND col3 = 0
uj5u.com熱心網友回復:
做一個GROUP BY。使用case 運算式進行條件聚合。
SELECT col1, 0 as col2, 0 as col3,
sum(case when col2 = 0 AND col3 = 0 then 1 else 0 end) as OCCURENCE
FROM table
GROUP BY col1
uj5u.com熱心網友回復:
您需要擺脫 DISTINCT 并添加 GROUP BY。然后,要添加與您的條件不匹配的 col1,您需要根據使用 UNION 獲得的結果添加它。您的第一個查詢也可以放在 CTE 中以便于使用
with cte as (
SELECT col1, col2, col3, COUNT(*) as OCCURENCE
FROM #table
WHERE col2 = 0 AND col3 = 0
GROUP BY col1, col2, col3
)
SELECT * from cte
UNION all
SELECT DISTINCT col1, 0, 0, 0 FROM table1 where col1 NOT IN (select col1 from cte)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/504185.html
上一篇:SQL到SQL轉換
下一篇:如何減少mvc中資料庫的價值?
