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

列数を行数に転置するSQLクエリ

    これらのタイプのクエリは、次のようにGROUPBYを目的として簡単に作成できます。

    Select 
    case when profile.foo ~* '5.0.2195' then 'Win2k'
         when profile.foo ~* '5.1.2600' then 'WinXP' 
         when profile.foo ~* '5.2.3790' then 'W2k3'
         when (profile.foo ~* '6.0.6000'
            or profile.foo ~* '6.0.6001'
            or profile.foo ~* '6.0.6002') 
            then 'Vista'
         when (profile.foo ~* '6.1.7600'
            or profile.foo ~* '6.1.7601')
            then 'Win7'
         when profile.foo ~* '6.2.9200' then 'Win8'
         when (profile.foo ~* '6.3.9200'
            or profile.foo ~* '6.3.9600')
            then 'Win8.1' ELSE 'Other' END as type,
         count(*) as cnt
    From profile
    GROUP BY 1
    

    以下にコメントするように、このクエリは相互に排他的な場合、つまりprofile.fooの場合に機能します。 行ごとに1つのOSを表す値が含まれています



    1. 毎月実行するSQLクエリを自動化する

    2. SSIS2008-変数で現在の日付を取得

    3. DockerでMysqlパスワードを非表示にする方法-env_fileを使用して作成

    4. 「ALTERTABLESWITCHステートメントが失敗しました」を修正する方法メッセージ4982(SQL Server)