gpt4 book ai didi

sql - 联合不同的行,但按 mysql 中出现的次数对它们进行排序

转载 作者:行者123 更新时间:2023-11-29 01:34:01 25 4
gpt4 key购买 nike

我有以下查询:

SELECT o.id,o.name FROM object o 
WHERE
(
o.description LIKE '%Black%' OR
o.name LIKE '%Black%'
)
UNION ALL
SELECT o2.id,o2.name FROM object o2
WHERE
(
o2.description LIKE '%iPhone%' OR
o2.name LIKE '%iPhone%'
)

产生以下内容:

id  name
2 New Black iPhone
1 New White iPhone
2 New Black iPhone

我想 UNION DISTINCT,但我也希望结果按每个相同行的出现次数排序(主要:id)。

最佳答案

您可以根据 id 和 name 列对结果进行分组,并查看每个不同值出现的次数。然后你可以按最先出现的次数排序它们 order by count(*) desc

select id, name, count(*) as occurences
from (
SELECT o.id,o.name FROM object o
WHERE
(
o.description LIKE '%Black%' OR
o.name LIKE '%Black%'
)
UNION ALL
SELECT o2.id,o2.name FROM object o2
WHERE
(
o2.description LIKE '%iPhone%' OR
o2.name LIKE '%iPhone%'
)
)
group by id, name
order by count(*) desc

这将返回

id  name              occurences
2 New Black iPhone 2
1 New White iPhone 1

关于sql - 联合不同的行,但按 mysql 中出现的次数对它们进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2499002/

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