mysql - (2) SELECT 与 (1) 表中的 WHERE、GROUP BY 和 ORDER BY 的 UNION

标签 mysql union

我想合并两个具有不同 WHERE 子句和重叠结果的查询。我如何使用 UNION 组合结果以通过 case_id 区分?

第一次查询

SELECT
O.case_id,
O.otc_eff_date,
DATE_FORMAT(STR_TO_DATE(O.otc_eff_date, '%Y%j'),'%m/%d/%Y') otc_ef_date,
O.otc_type,
O.case_rsf,
O.otc_rsn,
O.otc_rlse_to,
O.seg_ent_date,
O.Seg_chg_date,
O.otc_case_status,
O.otc_opn_seq_cnt,
O.filler
FROM NU.RawCaseOTC O
WHERE O.otc_eff_date BETWEEN 2011182 AND 2012182
GROUP BY O.case_id
ORDER BY otc_ef_date

第二次查询

SELECT 
MAX(otc_eff_date) MAX_OTC_EFF_DATE, 
case_id,
otc_eff_date,
otc_type,
case_rsf,
otc_rsn,
otc_rlse_to,
seg_ent_date,
Seg_chg_date,
otc_case_status,
otc_opn_seq_cnt,
filler 
FROM NU.RawCaseOTC 
WHERE (otc_case_status != 'C') AND (otc_eff_date <='2011182')
GROUP BY case_id
ORDER BY otc_eff_date

最佳答案

如果您 UNION 这 2 个选择,然后在它上面进行另一个选择,如果您将彼此的列放在 MAX 或 MIN 或 SUM 或 COUNT 或 AVG 中,则可以使 case_id 不同......

如果您希望第一行不同,第二行必须在聚合函数中。

关于mysql - (2) SELECT 与 (1) 表中的 WHERE、GROUP BY 和 ORDER BY 的 UNION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15625715/

相关文章:

并列情况下的 MySQL 排名

php - MySQL/PHP - 数据库用户登录转换

php Spreadsheet_Excel_Reader 数据插入 mysql 数据库时包含不需要的 �

mysql - 解码查询结果

sql - 在 MySQL 中转换 UNION 查询

sql - 如何计算 SQL 联合中的不同值?

php - Mysql,结合 JOIN 和 SORT BY 的多个查询

php - 尝试编写一个使用 session 变量的函数

mysql - 优化联合查询中的连接

mysql - 使用UNION ALL选择的疑问