0

次のようなデータセットがあります。

    ID      Description                     Team
    A       Missing Name; Missing Gender    Team1
    B       Missing Gender                  Team1
    C       Missing Name                    Team2
    D       Missing Name                    Team2

つまり、各 ID には 1 行があり、ID に関する問題を特定するテキスト列 (説明) と、ID が属するチームの名前が含まれます。私はそれを次のように要約することができました:

    Team        Missing Gender      Missing Name
    Team1       2                   1
    Team2       0                   2

次のような case ステートメントを使用します。

       SELECT
    "Team",
    sum(case when "DQ Info" like '%Missing Gender%' then 1 ELSE 0 END) as "Missing Gender",
    sum(case when "DQ Info" like '%Missing Name%' then 1 ELSE 0 END) as "Missing Name"
    FROM
    (*)
    GROUP BY "Team"

このデータを要約して、代わりに次のようにしたいと思います。

    Description         Team1       Team2
    Missing Gender      2           0
    Missing Name        1           2

それを行う方法があるに違いないことは知っていますが、現時点では苦労しています。上記のフィールドで「チーム」の代わりに「説明」を使用すると、次のような結果が得られます。

    Description                     Team1       Team2
    Missing Name; Missing Gender    1           0
    Missing Gender                  1           0
    Missing Name                    0           2

これは私が求めているものではありません。いじり続けますが、何か助けていただければ幸いです。解決できたら、この投稿を更新します。これはデータセットの単なる例であり、実際のデータセットではないことに注意してください。

編集: bpgergo の提案に従って、以下のクエリを実行します。いくつかの読み取りを行った後、以下はショート サーキットのように見えます。つまり、内側のケースの最初の基準が満たされるとクエリを終了します。つまり、列を複数回カウントすることはできません。残念ですが、元のクエリに固執する必要があると思います。

    SELECT
    "Description",
    sum(case when "Team" like 'Team1' then 1 ELSE 0 END) as "Team1",
    sum(case when "Team" like 'Team2' then 1 ELSE 0 END) as "Team2"
    FROM(SELECT
    "Team",
    case when "DQ Info" like '%[Check Role]%' then '[Check Role]'
    ELSE case when "DQ Info" like '%[Client deceased]%' then '[Client deceased]'
    ELSE case when "DQ Info" like '%[2 Parents not recorded]%' then '[2 Parents not recorded]'
    ELSE case when "DQ Info" like '%[Religion not recorded]%' then '[Religion not recorded]'
    ELSE case when "DQ Info" like '%[1st Language not recorded]%' then '[1st Language not recorded]'
    ELSE case when "DQ Info" like '%[Ethnicity not recorded]%' then '[Ethnicity not recorded]'
    ELSE case when "DQ Info" like '%[No Current Worker]%' then '[No Current Worker]'
    ELSE case when "DQ Info" like '%[No Current Team]%' then '[No Current Team]'
    ELSE case when "DQ Info" like '%[Update Gender]%' then '[Update Gender]'
    ELSE case when "DQ Info" like '%[No Plan]%' then '[No Plan]'
    ELSE case when "DQ Info" like '%[Update Plan]%' then '[Update Plan]'
    END END END END END END END END END END END
     as "Description"
    FROM(
    *
    FROM
    (*)WORKLOAD)DATA)
    GROUP BY "Description"
4

1 に答える 1

0

あなたはそこの途中です。内側の選択としてこのようなものを試してください

select 
case when "Description" like '%Missing Gender%' then "Missing_gender" 
ELSE case when "Description" like '%Missing Name%' then "Missing_name" ELSE null END
END as "Description",
Team
from your_table

全体の選択はこのようなものになります

SELECT
"Description",
sum(case when "Team" = 'Team1' then 1 ELSE 0 END) as "Team1",
sum(case when "Team" = 'Team2' then 1 ELSE 0 END) as "Team2",
FROM
(
  select 
  case when "Description" like '%Missing Gender%' then "Missing_gender" 
  ELSE case when "Description" like '%Missing Name%' then "Missing_name" ELSE null END
  END as "Description",
  Team
  from your_table
)
GROUP BY "Description"
于 2012-09-10T09:56:45.700 に答える