sql >> データベース >  >> RDS >> Sqlserver

SQLでサブクエリを使用してmax(count())を見つける

    実行していることに対して相関サブクエリは必要ありません。クエリに基づく1つの方法は次のとおりです。

    select CustomerNum, count(CustomerNum)
    from Rentals R
    group by CustomerNum
    having count(CustomerNum) = (select max(cnt)
                                 from (select CustomerNum, count(CustomerNum) as cnt
                                       from Rentals
                                       group by CustomerNum
                                      ) rc
                                );
    

    サブクエリをfromに移動したいと思います 句とサブクエリの使用:

    select rc.*
    from (select CustomerNum, count(CustomerNum) as cnt
          from Rentals R
          group by CustomerNum
         ) rc join
         (select max(cnt) as maxcnt
          from (select CustomerNum, count(CustomerNum) as cnt
                from Rentals
                group by CustomerNum
               ) rc
         ) m
         on rc.cnt = m.maxcnt;
    

    これらは標準SQLであり、両方のシステムで機能するはずです。実際には、おそらくtopを使用する方法を見つけるでしょう。 またはrow_number() SQLServer2008で。



    1. 大量のメモリを消費する大規模なDjangoQuerySetを反復処理するのはなぜですか?

    2. fe_sendauth:postgresql+laravelにパスワード指定エラーがありません

    3. 長時間実行されるクエリ(MySql)、ApacheTomcatDataSourceを自動的に強制終了します

    4. phpとjqueryajaxを使用してmysqlデータベースからデータを取得します