我非常新,并且非常了解SQL,因此我有这个问题希望有人可以帮助我。
这是我的查询:
SELECT
SUM(Amount) AS Paid,
COUNT(DISTINCT Count) AS total_Count,
SUM(Amount) / COUNT(DISTINCT Count) AS Ratio
FROM
TableA
WHERE
Date BETWEEN '2018-01-01' AND '2018-12-30'
我的问题是如何逐月循环而不是每次都硬编码日期范围。目的是获得这样的最终结果。
Month Paid Total Ratio
--------------------------------------
Jan
Feb
Mar
答案 0 :(得分:2)
您没有提到正在使用的RDBMS,但是它们都具有从日期中提取月份名称的机制。
因此,您可能会做类似
的操作SELECT
datepart(date, 'Month') as month,
sum(Amount) as Paid,
count(distinct Count) as total_Count,
sum(Amount) / count(distinct Count) as Ratio
FROM TableA
group by datepart(date, 'Month')
“分组依据”功能对您的总和/计数列进行分组(在这种情况下,按月)。您可能需要将日期限制为当前年份,或包括年份列。