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

SQLは単一グループグループ関数ではありません

    問題は簡単です。クエリの特定のSSNのSUM(TIME)は単一の値であるため、意味がないためMAXに反対します(単一の値の最大値は無意味です)。

    使用しているSQLデータベースサーバーはわかりませんが、次のようなクエリが必要だと思います(MSSQLのバックグラウンドで記述されているため、使用しているSQLサーバーへの変換が必要になる場合があります):

    SELECT TOP 1 SSN, SUM(TIME)
    FROM downloads
    GROUP BY SSN
    ORDER BY 2 DESC
    

    これにより、合計時間と合計時間が最も長いSSNが得られます。

    編集-同じ時間の複数があり、それらをすべて使用したい場合:

    SELECT
    SSN, SUM(TIME)
    FROM downloads
    GROUP BY SSN
    HAVING SUM(TIME)=(SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN))
    


    1. SQLServerデータベース開発用のGearHost入門

    2. ストレージエンジンの選択:Aria

    3. SQL Server(T-SQL)で文字列の正しい部分を取得する

    4. リンクサーバーでの疑似列の使用