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

SQLテーブルからのデータの挿入と変換

    WHILEは必要ありません ループ。

    SELECT
        date,
        id,
        SUM(CASE WHEN status_id = 1 THEN status_time ELSE 0 END) AS lunch,
        SUM(CASE WHEN status_id = 2 THEN status_time ELSE 0 END) AS break,
        SUM(CASE WHEN status_id = 3 THEN status_time ELSE 0 END) AS vacation
    FROM
        My_Table
    GROUP BY
        date,
        id
    

    また、status_timeを保持します 表にあるのは間違いです(非永続的な計算列でない限り)。同じデータをデータベースの2つの場所に効果的に保存しているため、結果として不整合が発生します。同じことが、このデータを別のテーブルにプッシュする場合にも当てはまります。時間はステータスタイプごとに分類されます。データを保持するための新しいテーブルを作成するのではなく、クエリを使用して必要なときにデータを取得してください。



    1. PostgreSQLで名前付きウィンドウパーティション(エイリアス)を作成するにはどうすればよいですか?

    2. SQL複数のテーブル間の多対多の関係

    3. mysql用の複数のDockerコンテナ、または複数のデータベースを持つ1つのインスタンス

    4. Mysqlのリードおよびラグ関数