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

1列のみのDISTINCT

    SQL Server 2005以降を使用している場合は、次を使用してください:

    SELECT *
      FROM (
                    SELECT  ID, 
                            Email, 
                            ProductName, 
                            ProductModel,
                            ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
                        FROM Products
                  ) a
    WHERE rn = 1
    

    編集:where句を使用した例:

    SELECT *
      FROM (
                    SELECT  ID, 
                            Email, 
                            ProductName, 
                            ProductModel,
                            ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
                        FROM Products
                       WHERE ProductModel = 2
                         AND ProductName LIKE 'CYBER%'
    
                  ) a
    WHERE rn = 1
    


    1. VARCHARからINTへのキャスト-MySQL

    2. 文字列をエスケープするとはどういう意味ですか?

    3. PostgreSQL 13:制限…タイ付き

    4. PRAGMAEXCEPTION_INITを使用してユーザー定義の例外を宣言する方法