sql - 在 SQL UNION 查询中添加列内容

标签 sql database union union-all

到目前为止我有这个查询

SELECT
    COUNT(f.code_id) as item_count, 
    f.code_desc
FROM 
    foo f
    INNER JOIN foohistory fh ON f.history_id = fh.history_id
WHERE
    MONTH(fh.create_dt) = 6
    AND YEAR(fh.create_dr) = 2010
GROUP BY 
    f.code_desc

    UNION ALL

SELECT
    COUNT(b.code_id) as item_count, 
    b.code_desc
FROM 
    bar b
    INNER JOIN barhistory bh ON b.history_id = bh.history_id
WHERE
    MONTH(bh.create_dt) = 6
    AND YEAR(bh.create_dr) = 2010
GROUP BY 
    b.code_desc

我的目标是 UNION 这两个查询,为每个 code_desc 添加 SUM 'item_count' 列。这可能吗?

最佳答案

如果没有关于代码的更多信息,例如如果两个表之间的代码可能互斥,请使用:

SELECT x.code_desc,
       SUM(x.item_count)
 FROM (SELECT f.code_desc,
              COUNT(f.code_id) as item_count
         FROM foo f
         JOIN foohistory fh ON f.history_id = fh.history_id
        WHERE MONTH(fh.create_dt) = 6
          AND YEAR(fh.create_dr) = 2010
     GROUP BY f.code_desc
       UNION ALL
       SELECT b.code_desc,
              COUNT(b.code_id) as item_count    
         FROM bar b
         JOIN barhistory bh ON b.history_id = bh.history_id
        WHERE MONTH(bh.create_dt) = 6
          AND YEAR(bh.create_dr) = 2010
     GROUP BY b.code_desc) x
GROUP BY x.code_desc

关于sql - 在 SQL UNION 查询中添加列内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4046278/

相关文章:

mysql - 按定义的顺序执行多个 JDBC 查询

php - 如何处理同一多对多关系的多种类型?

jquery - 在数据库发生变化时加载页面 - 可能吗?

sql - 为什么我必须添加括号才能使联合起作用

python - 我如何级联联合OGR Multipolygons

mysql - SQL 查询错误 #1064

sql - 检查另一个列值的检查约束

python - SQLAlchemy 中的链式比较

arrays - 删除使用 union 以外的一系列行的更快方法

C# sql 创建一个连接并为每个查询打开和关闭