回答

收藏

MySQL加条件的多列值

技术问答 技术问答 203 人阅读 | 0 人回复 | 2023-09-12

我有以下架构(两个表):
$ G9 z9 I0 T/ d+ O" h6 A  M**APPS**   | ID (bigint)  | USERID (Bigint) | USAGE_START_TIME (datetime)    |     ------------------------------------------------------------------   |          |        12                                  |    -05-    |   |   2                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |        12                                  |    -05-12 06:22:45|   |    3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |        12                                  |    -06-12 08:44:24|   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |        12                                  |    -06-24 04:20:56|   | 55                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |         133                                |    -06-26 08:20:26 |   |                                                                                                                                                                                                                                                                                                                                                                                                       |         133                                |    -09-12 05:48:27 |**USAGE**   | ID (bigint)  | APPID (bigint) |   DEVICEID (bigint)  | HIGH_COUNT (bigint) |  MEDIUM_COUNT (bigint)  |    --------------------------------------------------------------------------------------------------------   |          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |               |     400                                    |                 2000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      20020002000000000000020000000000000000002000002020002000000000000002002020000|   |   2                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |                   3                                                                          |    2000                                           |                   |   |    3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |        2                        |                   3                                                                          |     350                                  550                                                                                              |                    4040                                                       40                                                                                                                                                                                                                                                                                                                                                                                                           |   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |                  4    |          2                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |                  4000                                                    40000                   |   | 55                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |        4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |               |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |                  3030                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |   |                                                                                                                                                                                                                                                                                                                                                                                                       |      5 5                                    5                                                                                                                                                          5                                                                                                                                                                                                                                                                                                                                                                                                               |                   3                                                                          |      50                               50 50                                                                    50                                                                     50 50           505050                                                                                                                              |                 3000 3000                                                 30000 3000  30000                                                                                                                                               |解释:
* V" r0 H* j: P! L- x因此,有两个表。现在,我想找到以下内容:
0 ^5 u$ G: h& Y$ o0 \给定一个USERID,获取HIGH_COUNT和MEDIUM_COUNT和SUM要注意:如果是USAGE同一设备在计算总和时应考虑最新信息(基于APPS.USAGE_START_TIME)的记录。% E3 p5 D8 U* f: O" s7 V9 y
例如:( q4 y. B" n# @8 k# Y% K2 e
对于上述结构,结果应为(对于userid = 12):) y  ~$ N" e4 N1 {
            | HIGH_COUNT (bigint)  | MEDIUM_COUNT (Bigint) |    -----------------------------------------------   |                 356                                               35656                            |               |SQL小提琴:http://sqlfiddle.com/#!2 /2 l2 r9 [. [4 E, U5 P* V
74ae0f
* y' O9 Y+ ~2 i( F                                                                0 h  a% u0 Z# T( z
    解决方案:                                                               
! z# I* e; k' t2 f  E+ `) \                                                                如果用户APPS使用多个设备,查询将使用APPS最高值行usage_start_time:' U8 l! A8 t& }: _$ Z
select  a.userid,      sum(u.high_count),      sum(u.medium_count)from    apps ajoin    `usage` uon      u.appid = a.idjoin    (            select  u.device_id         a.userid         max(a.usage_start_time) as max_start_time        from    apps a        join    `usage` u        on      u.appid = a.id        group by                u.device_id         a.userid       filteron      filter.device_id = u.device_id        and filter.userid = a.userid        and filter.max_start_time = a.usage_start_timegroup by        a.userid在您的数据集中,它将5、3、4为user12选择使用情况。) G: }. X3 d) b  L3 a3 H
看到它在SQL Fiddle上运行。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则