将某些用户列中的平均数据与同一列中的另一个用户进行比较

时间:2015-10-07 12:32:55

标签: mysql sql

retID             Mnth           CollectYear       LW
ZZDZZ_Z            1                2015           102
ZZDZZ_Z            2                2015           100
ZZDZZ_Z            3                2015             99
ZZDZZ_Z            4                2015             99
ZZDZZ_Z            5                2015             98
ZZDZZ_Z            6                2015             99
ZZDZZ_Z            7                2015           100
ZZDZZ_Z            8                2015           101
ZZDZZ_Z            9                2015           102
ZZDZZ_Z           10                2015           102
ZZDZZ_Z           11                2015           103
ZZDZZ_Z           12                2015           104
c26_GW              8               2015           108
c26_GW              9               2015           102
c26_GW            10                2015           104
c24_HOF             8               2015           101
c24_HOF             9               2015           103
c24_HOF           10                2015            98

我需要在任何一个月内获得RetID ZZDZZ_Z的值,而不是在同一个月中非ZZDZZ_Z的其他retID的平均值。

很抱歉不得不再次发帖,试图过度简化。

1 个答案:

答案 0 :(得分:2)

    select avg(case when user in (1,2) then trans end) Avgtrans
         , avg(case when user = 3 then trans end) user3Trans
         , Month 
      from (...)
  group by Month

这是ANSI SQL,适用于Oracle,PostgreSQL,Microsoft SQL Server和Teradata;我不是100%肯定mySQL,但它也应该在那里运行。