我试图从联接表中划分出两列,但结果(列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列分开?
顺便说一句,我试图用减法(“ /”替换为“-”)替换除法,在这种情况下,列relative_duration不为0。
这些列可能是整数列,这就是原因,因为计算结果将是同一类型。
例如,如果您这样做:
SELECT 1 / 2
您将得到0,这显然不是真正的答案。因此,将值转换为例如十进制,然后根据该数据类型进行计算。
例如
SELECT CAST(1 AS DECIMAL) / 2
给出0.500000