我正在创建下面的 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/

10-12 23:01