我需要计算“周末交易百分比”,将周末交易数除以交易总数。 Transaction_data 表的 transaction_date 列当然具有日期数据类型,并且它是外键。为了查找周末的交易数量,我将 transaction_data 表与 Calendar 表连接起来。 不幸的是,这是返回 0 的查询
select (count(transaction_date) / (select count(transaction_date) from Transaction_Data)) * 100 from Transaction_Data t
left join Calendar c on c.Date = t.transaction_date
where c.Weekend = 'Y'
我知道在SQL Server中划分时存在一些问题。从数值上看,周末总交易笔数为76608,总交易笔数为269720, 所以选择 (76608 / 269720.0) * 100 返回正确的输出,即 28.40。正如您所注意到的,我需要添加 .0,否则查询将再次返回 0。 我的问题是如何在 SQL Server 中划分 2 个聚合? 先谢谢了
两个建议:
结果会是这样的
select
100.00 * count(case when c.Weekend = 'Y' then 1 end)
/ count(*)
AS WeekendTransactionPercent
from Transaction_Data t
left join Calendar c
on c.Date = t.transaction_date