mysql - MySQL如何计算包含指定列值的列
问题描述
我有桌子 xyz
ID day1 day2 day3 day4
1 A A P P
2 A A A P
3 A A A A
4 A P P P
我希望能够查询它并返回 ID 以及在该行中以 A 作为其值的列数。所以结果看起来像这样:
ID Count
1 2
2 3
3 4
4 1
解决方案
这是您可以使用的涉及字符串连接的技巧:
SELECT
ID,
CHAR_LENGTH(CONCAT(day1, day2, day3, day4)) -
CHAR_LENGTH(REPLACE(CONCAT(day1, day2, day3, day4), 'A', '')) AS Count
FROM yourTable
ORDER BY ID;
演示
如果您还想计算其他字母,只需复制我对字母的逻辑A
,例如L
我们可以尝试:
CHAR_LENGTH(CONCAT(day1, day2, day3, day4)) -
CHAR_LENGTH(REPLACE(CONCAT(day1, day2, day3, day4), 'L', ''))
推荐阅读
- python-3.x - 如何在以逗号分隔的字符串中加入 for 循环输出?
- python - 如何将所有请求写入文件?
- php - 插入选择并声明其他列值
- reactjs - 如何在反应映射循环中定位特定元素
- ruby-on-rails - 带有附加表单字段的 Rails CSV 导入
- python - 在python中使用多处理返回值
- python - 自定义python包模块中没有功能
- javascript - 如何使用键过滤出对象数组
- elasticsearch - 如何使用 NEST 和 Elastic Search 从查询中获取字段值
- python - 如何在pyspark中为中值、均值和标准创建新列?