gpt4 book ai didi

MySQL 计算在单元格中显示为列表的数据的出现次数

转载 作者:行者123 更新时间:2023-11-30 22:51:28 26 4
gpt4 key购买 nike

大家好。假设我有一个这样组织的表:

|ColA         |
---------------
|AAA |
|AAA#!#BBB |
|BBB#!#CCC#!#DDD|
|AAA#!#DDD |
|DDD |

我想要实现的是计算每个字符串的出现次数,将符号“#!#”视为分隔符。最好的应该是有一个 MySQL Count() 结果样式:

|count|   |
|AAA |3 |
|BBB |2 |
|CCC |1 |
|DDD |3 |

是否可以在 SQL 语句中将 replacecount 结合使用?是否可以使用 replace 结果作为表格来应用 count

最佳答案

像这样的东西应该可以解决问题:

架构

CREATE TABLE TableA
(`id` int, `ColA` varchar(255));
INSERT INTO TableA
(`id`, `ColA`)
VALUES
(1, 'AAA'),
(2, 'AAA#!#BBB'),
(3, 'BBB#!#CCC#!#DDD'),
(4, 'AAA#!#DDD'),
(5, 'DDD');


CREATE TABLE TableB
(`id` int, `Name` varchar(255));
INSERT INTO TableB
(`id`, `Name`)
VALUES
(1, 'AAA'),
(2, 'BBB'),
(3, 'CCC'),
(4, 'DDD');

查询

SELECT col, SUM(count) as count 
FROM
(SELECT
t2.Name as col,
ROUND (
(
CHAR_LENGTH(t1.ColA)
- CHAR_LENGTH( REPLACE (t1.ColA, t2.Name, "") )
) / CHAR_LENGTH(t2.Name)
) as count
FROM TableA as t1
INNER JOIN TableB as t2) as SubB
GROUP BY col, count
HAVING count > 0;

SQL FIDDLE

关于MySQL 计算在单元格中显示为列表的数据的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28049377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com