小编典典

如何划分两列?

sql

我试图从联接表中划分出两列,但结果(列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。


阅读 207

收藏
2021-04-22

共1个答案

小编典典

这些列可能是整数列,这就是原因,因为计算结果将是同一类型。

例如,如果您这样做:

SELECT 1 / 2

您将得到0,这显然不是真正的答案。因此,将值转换为例如十进制,然后根据该数据类型进行计算。

例如

SELECT CAST(1 AS DECIMAL) / 2

给出0.500000

2021-04-22