我寫這樣的組由SQL
CASE
WHEN [col1] = 's' THEN '1'
WHEN [col1] = 't' THEN '2'
WHEN [col1] = 'u' THEN '3'
WHEN [col2] = 'v' THEN '4'
.......
END AS product,
SUM(col3)
FROM dbo.TableA
我的產品要組一個查詢? 如何做到這一點?
我寫這樣的組由SQL
CASE
WHEN [col1] = 's' THEN '1'
WHEN [col1] = 't' THEN '2'
WHEN [col1] = 'u' THEN '3'
WHEN [col2] = 'v' THEN '4'
.......
END AS product,
SUM(col3)
FROM dbo.TableA
我的產品要組一個查詢? 如何做到這一點?
你需要做的是使用你的別名CASE
列的子查詢。將您的查詢作爲子查詢,您可以group by
您的別名列。
select product
from
(
select
CASE
WHEN [col1] = 's' THEN '1'
WHEN [col1] = 't' THEN '2'
WHEN [col1] = 'u' THEN '3'
WHEN [col2] = 'v' THEN '4'
END AS product,
SUM(col3) as Col3Sum
FROM dbo.TableA
) a
group by product
你需要在你的Group By
的CASE
爲好。不能使用別名在 GROUP BY
SELECT yourColumn, otherColumn
, CASE
WHEN [col1] = 's' THEN '1'
WHEN [col1] = 't' THEN '2'
WHEN [col1] = 'u' THEN '3'
WHEN [col2] = 'v' THEN '4'
END AS Product
, anotherColumn
FROM yourTable
GROUP BY CASE
WHEN [col1] = 's' THEN '1'
WHEN [col1] = 't' THEN '2'
WHEN [col1] = 'u' THEN '3'
WHEN [col2] = 'v' THEN '4'
END
你是對的..但其他答案爲我工作! – Yogesh
@AdamWenger我試過這個解決方案,但對我來說運行速度非常慢。 –
你的答案me..thnx – Yogesh
這適用於SUM的工作,但它會打破數(不同COL4)。 – SarekOfVulcan