Sql 获取与子查询给定的最小值匹配的行
我有一个Sql 获取与子查询给定的最小值匹配的行,sql,oracle,Sql,Oracle,我有一个NAMES表,表中有id和name列 查询是根据以其自身结尾的单词数最少的字母获取结果 亨利、哈里、约翰、弗雷德里克是我桌上的名字。n和k是只有一个单词作为结束字母的字母 这就是我到目前为止所做的 select substr(name, -1, 1) as character, count(*) as wordscount from names group by substr(name, -1, 1) order by count(*)
NAMES
表,表中有id
和name
列
查询是根据以其自身结尾的单词数最少的字母获取结果
亨利、哈里、约翰、弗雷德里克是我桌上的名字。n和k是只有一个单词作为结束字母的字母
这就是我到目前为止所做的
select substr(name, -1, 1) as character,
count(*) as wordscount
from names
group by substr(name, -1, 1)
order by count(*);
这让我得到如下结果
character wordscount
----------- ------------
n 1
k 1
y 2
我的查询应该得到如下结果
character wordscount
----------- ------------
n 1
k 1
我不想使用rownum=1
,因为可能有多个字母具有相同的最少字数
select *
from (select substr(name, -1, 1) as character,
count(*) as wordsCount
from names
group by substr(name, -1, 1)
order by count(*))
where rownum = 1;
我不想使用上面的查询,因为这将从我的结果中省略
k1
。您是否希望使用
select substr(name, -1, 1) as character, count(*) as wordscount from names
group by substr(name, -1, 1) having count(*)= (
select min(count(*)) from names
group by substr(name, -1, 1)
)
或者没有附加包装:
select * from (
select substr(name, -1, 1) as character, count(*) as wordscount from names
group by substr(name, -1, 1) ) A where wordscount = (
select min(count(*)) from names
group by substr(name, -1, 1)
)
这正是我需要的。但是,除了“拥有”之外,还有什么别的选择吗?因为我的名声不好,我无法提升自己。非常感谢你的帮助