mysql - MySQL查询包含相似数据的3列
问题描述
在我继承的数据库表中,该结构包含 3 列关注 1、关注 2、关注 3。
Record 1 may have concern1 A, concern2 B (nothing in concern3)
Record 2 may have concern1 C, concern2 A (nothing in concern3)
Record 3 may have concern1 B, concern2 A , concern3 D
我想结束
Concern Count
A 3
B 2
C 1
D 1
I can then use this to produce a chart.
My knowledge of SQL is not enough to do this.
解决方案
您可以使用联合查询:
SELECT Concern, COUNT(*) AS Count
FROM
(
SELECT concern1 AS Concern FROM yourTable UNION ALL
SELECT concern2 FROM yourTable UNION ALL
SELECT concern3 FROM yourTable
) t
WHERE
Concern IS NOT NULL
GROUP BY
Concern;
顺便说一句,经常需要执行此类查询可能意味着糟糕的表设计。在这种情况下,您可能只想维护一个关注点列,以及关注点类型的辅助列。
推荐阅读
- javascript - ajax功能完成后socket.io连接
- sql-server - SSRS 中个人姓名的单独图表
- reactjs - 在 RxJS 或 Redux Observable 中 debounceTime 也起到延迟的作用
- swift - Swift - CoreData:从连接表中检索属性
- c# - 如何在 navMesh 中获取最近的对象并使代理向它移动
- javascript - 从 highstock 的数据结构中获取变量
- php - Symfony 3.4、composer post-install-cmd 和 env() 参数为默认值
- laravel - Summernote 不适用于 laravel 表单
- enums - 带有枚举的机器人构建器表单流
- reactjs - Semantic-UI React 中的侧边栏 + 固定顶部菜单