私はアテナに次のようなデータを持っています:
| shop_id | date | provider | provider_new | sales
| 123 | 2020-06-01 | X | | 100
| 124 | 2020-07-01 | Y | | 200
| 125 | 2020-08-01 | | Z | 300
| 126 | 2020-09-01 | | T | 400
ただし、テーブルの所有者は
provider
に
provider_new
。したがって、2020-08-01以降、プロバイダーはNULLに戻ります。これが私の質問です:
SELECT date,
shop_id,
CASE
WHEN provider = 'X' THEN
'X'
WHEN provider = 'Y' THEN
'Y'
WHEN provider LIKE 'Z%' THEN
'Z'
WHEN provider LIKE 'T%' THEN
'T'
ELSE 'M'
END AS provider_group,
SUM(sales) AS sales
FROM X
GROUP BY 1, 2
これらの2つの列を1つにマップするにはどうすればよいですか?
前もって感謝します。
回答 1 件
関連記事
- 特定の列の値から新しい列を派生させる方法は?
- 列が一致する場合は、別の列から値を取得して、それを新しい変数に割り当てます
- 他の2つの列の間に新しい列(移行)を作成しますか?
- テーブルの列の値が他のテーブルの2つの列の値の合計と等しくないことを確認します
- 2つの列から行列を作成します。1つは列インデックスで、もう1つはRの値です。
- 同じ列の2つのSUM()が、同じselectステートメント内の異なる列によってグループ化されている
- 繰り返し観察して、ティブルを1列から2列に変換する方法
- 列名にスペースパンダがある場合は、複数の列を削除します
- 別のcsvを使用したcsvの列名と値のマッピング
- Null値を持つ列を検索し、Pysparkの各レコードごとに新しい列に書き込みます
欲しいですか
coalesce()
?coalesce()
最初の非null
与えられた引数の値。