我正在创建下面的 2 个临时表。我需要创建一个标志,说明每个客户的所有weekly_sales 值是否都小于表1 中的单个平均值。这样做的最佳方法是什么?
例如,这里是表 1:
Table 1
cust_nbr avg_sales
1234 200
这是表 2:
Table 2
cust_nbr weekly_sales week
1234 222 1
1234 211 2
1234 121 4
最佳答案
试试这个:它应该选择每个客户,如果他们的最大每周销售额仍然低于 Table1
中为他们设置的平均值,则标记他们。
SELECT
A.Cust_nbr,
A.Avg_Sales,
CASE WHEN B.MaxSale < A.Avg_Sales THEN 1 ELSE 0 END IsAlwaysBelowAverage
FROM
Table1 A
LEFT JOIN
(
SELECT
Cust_Nbr,
MAX(Weekly_Sales) AS MaxSale
FROM Table2
) B ON
A.Cust_Nbr = B.Cust_Nbr
关于sql - 比较多值 SQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32722771/