我尝试从连接表中划分两列,但结果(列relative_duration的值)始终为0.查询如下:
SELECT t1.[user_1]
,t1.[user_2]
,t1.[total_duration]
,(t1.total_duration/t2.[total_events_duration]) AS relative_duration
FROM [CDRs].[dbo].[aggregate_monthly_events] AS t1 INNER JOIN [CDRs].[dbo].[user_events_monthly_stats] AS t2 ON t1.[user_1] = t2.[user_1]
有没有人知道上面的查询中可能出现什么问题,以及如何修复它以便将表t1中的total_duration列与表t2中的total_events_duration列分开?
BTW我试图用减法代替除法(“/”用“ - ”代替),在这种情况下,列relative_duration不是0.
答案 0 :(得分:31)
据推测,这些列是整数列 - 这是因为计算结果将是相同类型的原因。
e.g。如果你这样做:
SELECT 1 / 2
你会得到0,这显然不是真正的答案。 因此,将值转换为例如十进制,而是根据该数据类型进行计算。
e.g。
SELECT CAST(1 AS DECIMAL) / 2
给出0.500000