首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询-如何在一个查询中构造多个和(基于不同的参数)

SQL查询-如何在一个查询中构造多个和(基于不同的参数)
EN

Stack Overflow用户
提问于 2012-10-11 16:20:37
回答 2查看 1.3K关注 0票数 3

请看我下面的桌子..。是否可以构建一个单个查询,以便

1)计算所有有class_id 1的车辆(不论feature_id)的total_time之和。

(结果为6:35)

2)计算所有有class_id 1和feature_id 2的车辆的total_time之和

(结果将是基于vehicle_id 22和24的5:35 )

我能够在两个单独的查询中获得结果,但我希望在一个查询中检索它们.类似于:

代码语言:javascript
复制
SELECT 
    SUM((CASE WHEN (VEHICLE_TABLE.class_id = 1) then LOG_TABLE.total_time else 0 end)) **AS TOTAL_ALL**,
    ...here goes statement for 2)... AS TOTAL_DIESEL...
FROM LOG_TABLE, VEHICLE_TABLE .....
WHERE VEHICLE_TABLE.vehicle_id = LOG_TABLE.vehicle_id ......

表1: LOG_TABLE (vehicle_id不是唯一的)

vehicle_id    total_time

商业、金融、金融等行业的自愿性、商品性、无偿性、自愿性、自愿性等。

自愿性、无偿性-22

自愿性

自愿性、无偿性、自愿性

可转嫁性、转轨性、转轨性

表2: VEHICLE_TABLE (vehicle_id是唯一的)

vehicle_id    class_id

商业、商业、金融等行业的商业、商业、金融等行业。

*

商业、商业、金融等领域的商业、金融等领域。

表3: VEHICLE_FEATURES_TABLE (vehicle_id不是唯一的,但feature_id在vehicle_id中是唯一的)

vehicle_id    feature_id

商业、商业、金融等行业的商业、商业、金融等行业。

商业、金融等领域的商业、金融等领域。

*

*

*

商业、商业、金融、金融等领域的商业、商业、金融、金融等领域。

商业、商业、金融等行业的商业、金融等行业。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-11 16:52:17

代码语言:javascript
复制
SELECT  SUM(lt.total_time) AS TOTAL_ALL,
        SUM(CASE WHEN (vft.feature_id IS NOT NULL) then LOG_TABLE.total_time else 0 end) AS FEATURE_TOTAL

FROM    VEHICLE_TABLE vt

        JOIN LOG_TABLE lt
        ON vt.vehicle_id = lt.vehicle_id

        LEFT JOIN VEHICLE_FEATURES_TABLE vft
        ON vt.vehicle_id = vft.vehicle_id AND vft.feature_id = 2

WHERE   vt.class_id = 1
票数 4
EN

Stack Overflow用户

发布于 2012-10-11 16:31:42

除非您希望将结果放在一起,否则将两者放在一个查询中似乎没有多大意义。

如果是这样,只需在两个查询之间添加一个UNION即可。

如果希望在同一行中同时拥有这两个值,请尝试如下所示:

代码语言:javascript
复制
SELECT (SELECT Sum(X) 
        FROM   TBL 
        WHERE  CLASS_ID = 1)       AS CLS_id1, 
       (SELECT Sum(X) 
        FROM   TBL 
        WHERE  CLASS_ID = 1 
               AND FEATURE_ID = 2) AS CLS_id1_FTR_ID2 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12844144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档