代码之家  ›  专栏  ›  技术社区  ›  Niko Gamulin

如何划分两列?

sql
  •  7
  • Niko Gamulin  · 技术社区  · 14 年前

        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分开?

    顺便说一下,我试图用减法(“/”用“-”)代替除法,在这种情况下,列相对持续时间不是0。

    1 回复  |  直到 14 年前
        1
  •  38
  •   AdaTheDev    14 年前

    据推测,这些列是整数列-这将是计算结果为同一类型的原因。

    e、 g.如果你这样做:

    SELECT 1 / 2
    

    你会得到0,这显然不是真正的答案。 因此,将这些值转换为decimal,并根据该数据类型进行计算。

    例如

    SELECT CAST(1 AS DECIMAL) / 2
    

    给予50万