gpt4 book ai didi

sql-server-2008 - SQL 服务器 2008 : Using SIGN to get positive or negative value

转载 作者:行者123 更新时间:2023-12-04 06:55:02 29 4
gpt4 key购买 nike

我有一个大表(数百万条记录),其中包含每种交易类型的交易金额。我正在尝试获取金额大于、小于和等于 0 的每种交易类型的计数。我正在执行 3 个单独的查询来获取此信息,更改每个查询中的 WHERE 子句,然后将结果拼凑在一起之后。

有人可以推荐一种更智能的方式来编写此语句吗?

SELECT 
TRANSACTION_CD
,COUNT(TRANSACTION_CD)
FROM [FINANCIAL_TRANSACTION] ft
INNER JOIN POLICY p ON p.POLICY_ID = ft.POLICY_ID
WHERE
ft.EFFECTIVE_DT > '01/01/2008'
AND SIGN(ft.transaction_amt) = -1
GROUP BY
TRANSACTION_CD
ORDER BY
TRANSACTION_CD

最佳答案

SELECT 
TRANSACTION_CD
,SUM(CASE WHEN ft.transaction_amt < 0 THEN 1 ELSE 0 END) AS NegativeCount
,SUM(CASE WHEN ft.transaction_amt = 0 THEN 1 ELSE 0 END) AS ZeroCount
,SUM(CASE WHEN ft.transaction_amt > 0 THEN 1 ELSE 0 END) AS PositiveCount
FROM [FINANCIAL_TRANSACTION] ft
INNER JOIN POLICY p ON p.POLICY_ID = ft.POLICY_ID
WHERE
ft.EFFECTIVE_DT > '01/01/2008'
GROUP BY
TRANSACTION_CD
ORDER BY
TRANSACTION_CD

关于sql-server-2008 - SQL 服务器 2008 : Using SIGN to get positive or negative value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8609077/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com