MySQL:Select 第 1 列或第 2 列中出现次数最多的 3 个字符串
MySQL: Select 3 most occuring strings either in column 1 or column 2
我想从我的数据库的 2 行中获取 3 个最常出现的字符串。问题是字符串可能出现在 column1 或 column2 中。我只想使用一个查询。提前致谢
示例数据库:
id string1 string2
1 foo bar
2 bar foo
3 api foo
输出应该是:
string count
foo 3
bar 2
api 1
您可以执行以下查询:
SELECT string, COUNT(*) FROM
(
SELECT string1 string FROM mytable
UNION ALL
SELECT string2 string FROM mytable
) sub
GROUP BY string
ORDER BY COUNT(*) DESC
LIMIT 3
其中 mytable
是您的 table 姓名。
使用此查询:
- 您采用所有字符串的并集,
string1
或 string2
。
- 您将这些字符串按数量分组。
- 您按数量从大到小排序。
- 你只拿了三个第一。
我想从我的数据库的 2 行中获取 3 个最常出现的字符串。问题是字符串可能出现在 column1 或 column2 中。我只想使用一个查询。提前致谢
示例数据库:
id string1 string2
1 foo bar
2 bar foo
3 api foo
输出应该是:
string count
foo 3
bar 2
api 1
您可以执行以下查询:
SELECT string, COUNT(*) FROM
(
SELECT string1 string FROM mytable
UNION ALL
SELECT string2 string FROM mytable
) sub
GROUP BY string
ORDER BY COUNT(*) DESC
LIMIT 3
其中 mytable
是您的 table 姓名。
使用此查询:
- 您采用所有字符串的并集,
string1
或string2
。 - 您将这些字符串按数量分组。
- 您按数量从大到小排序。
- 你只拿了三个第一。