我試圖在單獨的列中計算已批準的訂單。初始表如下所示,
用戶名 | 地位 | 數數 |
---|---|---|
用戶 1 | 得到正式認可的 | 1 |
被拒絕 | 2 | |
用戶 2 | 得到正式認可的 | 5 |
用戶 3 | 得到正式認可的 | 1 |
用戶 4 | 得到正式認可的 | 2 |
被拒絕 | 5 |
但我想獲得另一列作為批準計數,
用戶名 | 地位 | 數數 | 批準計數 |
---|---|---|---|
用戶 1 | 得到正式認可的 | 1 | 1 |
被拒絕 | 2 | ||
用戶 2 | 得到正式認可的 | 5 | 5 |
用戶 3 | 得到正式認可的 | 1 | 1 |
用戶 4 | 得到正式認可的 | 2 | 2 |
被拒絕 | 5 |
這樣做的最佳方法是什么?
uj5u.com熱心網友回復:
你可能想做這樣的事情:
Select Count(User_Id) FROM table WHERE Status = 'Approved'
您也可以嘗試GROUP BY User_Id
在最后添加
uj5u.com熱心網友回復:
您可以嘗試使用case陳述句。
SELECT Username,
Status,
Count,
CASE
WHEN Status = 'Approved' Then Count
else ''
end as approved_count
FROM table1
分貝小提琴
uj5u.com熱心網友回復:
試試這個。我使用了與您提到的相同的列名,但不推薦
你的無能部分是這個:
case when Status = 'Approved' then count else 0 end
例子
select *, case when Status = 'Approved' then count else 0 end Approved_count from table_X
where row_num = 1;
完整示例代碼
select *, case when Status = 'Approved' then count else 0 end Approved_count from (
select ROW_NUMBER() OVER (partition by user_name, Status ORDER BY user_name) row_num,
user_name, Status, count(Status) over (partition by user_name, Status) count
from [Count_test] )
A where row_num = 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491559.html
下一篇:在資料透視表中使用SUM函式