我试图执行以下查询:
SELECT t1.[user1], t1.[user2],
(CAST(t1.[total_event_duration] AS DECIMAL)) / (CAST (t2.[total_events_duration] AS DECIMAL)) AS buddy_strength
FROM [CDRs].[dbo].[aggregate_monthly_events] AS t1
INNER JOIN [CDRs].[dbo].[user_monthly_stats] AS t2
ON t1.[user1] = t2.[user1]
WHERE buddy_strength > 0.02
Run Code Online (Sandbox Code Playgroud)
但它返回错误"无效的列名'buddy_strength'"
有谁知道如何修复上面的查询?
SELECT *
FROM
(
SELECT
t1.[user1], t1.[user2],(CAST(t1.[total_event_duration] AS DECIMAL))/(CAST (t2.[total_events_duration] AS DECIMAL)) AS buddy_strength
FROM [CDRs].[dbo].[aggregate_monthly_events] AS t1
INNER JOIN [CDRs].[dbo].[user_monthly_stats] AS t2
ON t1.[user1] = t2.[user1]
) foo
WHERE foo.buddy_strength > 0.02
Run Code Online (Sandbox Code Playgroud)
您不能在WHERE子句中使用别名.你需要重复整个表达式(CAST(t1.[total_event_duration] AS DECIMAL))/(CAST (t2.[total_events_duration] AS DECIMAL)>0.02).
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |