Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取与子查询给定的最小值匹配的行_Sql_Oracle - Fatal编程技术网

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)
 ) 

这正是我需要的。但是,除了“拥有”之外,还有什么别的选择吗?因为我的名声不好,我无法提升自己。非常感谢你的帮助