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

T-SQL:MAX(その他の列)に基づく列の選択

    自己結合の使用:

    これにより、複数ある場合に、一致するサブキー値を持つすべての値が返されます。

    SELECT a.value
      FROM TABLE a
      JOIN (SELECT MAX(t.subkey) AS max_subkey
              FROM TABLE t
             WHERE t.key = 1) b ON b.max_subkey = a.subkey
     WHERE a.key = 1
    

    RANK&CTE(SQL Server 2005以降)の使用:

    これにより、複数ある場合に、一致するサブキー値を持つすべての値が返されます。

    WITH summary AS (
      SELECT t.*,
             RANK() OVER(ORDER BY t.subkey DESC) AS rank
        FROM TABLE t
       WHERE t.key = 1)
    SELECT s.value
      FROM summary s
     WHERE s.rank = 1
    

    ROW_NUMBERとCTE(SQL Server 2005以降)の使用:

    これにより、同じサブキー値を持つ行が複数ある場合でも、1つの行が返されます...

    WITH summary AS (
      SELECT t.*,
             ROW_NUMBER() OVER(ORDER BY t.subkey DESC) AS rank
        FROM TABLE t
       WHERE t.key = 1)
    SELECT s.value
      FROM summary s
     WHERE s.rank = 1
    

    TOPの使用:

    これにより、同じサブキー値を持つ行が複数ある場合でも、1つの行が返されます...

      SELECT TOP 1
             t.value
        FROM TABLE t
       WHERE t.key = 1
    ORDER BY t.subkey DESC
    


    1. WindowsからAmazonEC2でMySQLに接続するにはどうすればよいですか?

    2. SQLServerのデータベースからすべてのトリガーを削除または削除する方法

    3. SQLServerの監視でアラートの過負荷を防ぐための4つの方法

    4. mysqlダンプSQLファイルをsqlite3dbにインポートできる形式に変換するスクリプト