You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中基于GROUP_CONCAT生成带车型存在性判断的查询结果

解决方案

要实现你需要的结果,核心是按年份分组,同时完成两个操作:合并同一年的车型、判断指定品牌是否存在。以下是修正后的查询语句:

SELECT
  year AS `Year`,
  GROUP_CONCAT(DISTINCT Cars ORDER BY Cars SEPARATOR ', ') AS `Car Model`,
  CASE WHEN MAX(CASE WHEN Cars = 'TOYOTA' THEN 1 ELSE 0 END) = 1 THEN 'YES' ELSE 'NO' END AS TOYOTA,
  CASE WHEN MAX(CASE WHEN Cars = 'FORD' THEN 1 ELSE 0 END) = 1 THEN 'YES' ELSE 'NO' END AS FORD
FROM table1
GROUP BY year
ORDER BY year;

语句说明:

  • GROUP BY year:按年份分组,确保每个年份只返回一行结果。
  • GROUP_CONCAT(...):将同一年的所有车型按字母排序后用逗号拼接,DISTINCT可避免同一年出现重复车型时重复拼接。
  • CASE判断逻辑:
    • 内层CASE:如果当前行车型是目标品牌,标记为1,否则0;
    • 外层MAX():聚合后只要该年份有一个目标品牌,结果就是1,否则0;
    • 最终外层CASE:将1转为'YES',0转为'NO'。

预期输出:

YearCar ModelTOYOTAFORD
2000BMW, Maruti Suzuki, TOYOTAYESNO
2001Chevrolet, Daimler, VolkswagenNONO

内容的提问来源于stack exchange,提问作者Imran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 08:50:19