ホームページ > データベース > mysql チュートリアル > 2 つの列 (組織と役職) を使用して言語ごとにユーザー データをピボットするにはどうすればよいですか?

2 つの列 (組織と役職) を使用して言語ごとにユーザー データをピボットするにはどうすればよいですか?

DDD
リリース: 2024-12-28 07:40:26
オリジナル
825 人が閲覧しました

How Can I Pivot User Data by Language Using Two Columns (Organization and Position)?

2 つの列を使用したデータのピボット

この質問は、各行がユーザーとそれに対応する組織を表す形式からデータをピボットする必要性について説明します。各行にユーザーとその組織、および言語ごとにグループ化された役職が含まれる形式に配置します。

提供された例は、元のデータがテーブルに格納されており、各行にユーザー ID、組織、役職、および言語が含まれていることを示しています。望ましい出力は、各行にユーザー ID、ユーザーの組織、各言語の位置が含まれるテーブルを作成することです。

これを実現するには、ピボット クエリを使用してデータを変換します。ユーザーが提供したクエリは開始点としては適していますが、目的の出力を達成するには追加の変更が必要です。

次の変更されたクエリは機能するはずです:

SELECT user_id, 
    MAX(CASE WHEN lang = 'EN' THEN org END) AS org_en, 
    MAX(CASE WHEN lang = 'EN' THEN position END) AS position_en, 
    MAX(CASE WHEN lang = 'FI' THEN org END) AS org_fi, 
    MAX(CASE WHEN lang = 'FI' THEN position END) AS position_fi, 
    MAX(CASE WHEN lang = 'SV' THEN org END) AS org_sv, 
    MAX(CASE WHEN lang = 'SV' THEN position END) AS position_sv
FROM source
GROUP BY user_id;
ログイン後にコピー

このクエリは CASE を使用します。ステートメントを使用して、lang 列を目的の言語と比較し、条件が満たされる場合は、対応する組織または役職を返します。次に、MAX() 関数を使用して、各ユーザー ID の結果を集計します。

以上が2 つの列 (組織と役職) を使用して言語ごとにユーザー データをピボットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート