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

これらの2つのクエリは同じですか?GROUP BYとDISTINCTですか?

    あなたの例2では、​​しばらく頭を悩ませていました。「DISTINCTはできません。 単一の列、それはどういう意味ですか?」-何が起こっているのか理解するまで。

    持っているとき

    SELECT DISTINCT(t.ItemNumber)
    

    あなたはではありません 、外観にもかかわらず、実際にはt.ItemNumberの個別の値を要求します !例2は、実際には

    と同じように解析されます。
    SELECT DISTINCT
      (t.ItemNumber)
      ,
      (SELECT TOP 1 ItemDescription
       FROM Transactions
       WHERE ItemNumber = t.ItemNumber
       ORDER BY DateCreated DESC) AS ItemDescription
    FROM Transactions t
    

    t.ItemNumberの前後に構文的には正しいが、余分な括弧が付いている 。 DISTINCTが全体として得られるのは、結果セットです。 適用されます。

    この場合、GROUP BY 実際に変化する列でグループ化すると、同じ結果が得られます。実際、SQL Serverが(GROUP BYで)そうではないことに少し驚いています。 例)サブクエリされた列がGROUP BYで言及されていることを主張します リスト。



    1. SQLServerストアドプロシージャからのAPIの呼び出し

    2. django.db.utils.OperationalError:(2026、'SSL接続エラー:SSL_CTX_set_tmp_dhが失敗しました')

    3. SQL GROUP BYの最新のレコードを表示しますか?

    4. Oracle の ODP.Net は改行 .Net 改行を処理できませんか?