对于我的数据库表:
//table1
name
---------
john
mary
ali
在我的表2
//table2
title
---------
test1
test2
test3
在我的表3
//table3
name title
-----------------
john test1
john test2
john test3
mary test2
所以我的问题是找到按名称连接次数最多的标题。
所以我的查询是:
SELECT t2.title from table2 t2 inner join table3 t3 on
t2.title = t3.title inner join table1 t1 on
t1.name = t3.name having max(....)
当我检查一些网站时。他们用于having子句的所有内容仅用于数字,我找不到任何适合我需要计数的问题的示例(*)
预期输出:
//result
title
---------
test2
最佳答案
按计数排序以获取从最常见标题开始的列表
SELECT t2.title
from table2 t2
inner join table3 t3 on t2.title = t3.title
inner join table1 t1 on t1.name = t3.name
group by t2.title
order by count(*) desc
要仅获取顶部结果,请使用p>
SELECT * FROM
(
SELECT t2.title
from table2 t2
inner join table3 t3 on t2.title = t3.title
inner join table1 t1 on t1.name = t3.name
group by t2.title
order by count(*) desc
) X
WHERE ROWNUM = 1;
关于sql - 具有最大条件的 select 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367311/