初めて投稿します。
購買レコードの購買分析を行っているのですが、
タイムスタンプが年月日までしかなく、時分が無い状態です。
こうなると、同日内に複数購入している場合、fixedにてMAXやMINのような
関数でレコードを扱う際どれを掴んでいるのか不明のため、適当に採番をしたく思います。
イメージとしては以下のように、同ユーザーの同日購買レコード内で採番を折り返したく、
ユーザー | 購買日 | 採番
Aさん 2020/1/1 1
Aさん 2020/1/2 1
Aさん 2020/1/2 2
Bさん 2020/1/5 1
Bさん 2020/1/5 2
Bさん 2020/1/5 3
回避するために、index()が使えないか試したところ、ワークシート上では採番できたのですが、
実際にその番号を他の関数で扱えるものではないようでした。
何か良い方法があればどなたか教えていただきたく、よろしくお願いいたします。
(※番号の振り方は「DBの先に出てきたほうから」などなんでも良いと考えてます)
つたない説明で恐縮ですが、何卒、よろしくお願いいたします。
Maruyamaさん、こんにちは。
お手持ちのデータをデータベースに格納し、row_number()という行番号を付与する関数を使えば、Tableauに読み込む前のデータソース側で望む形でデータを持つことができます。
Tableauだけやるのはできたとしても筋がよくない感覚があります。
仮に、ユーザー(列名をuserとする)、購入日(列名をdateとする)の2列のテーブルをデータベース側に作ったら、以下のSQL文で行けるはずです。
select user, date, row_number() over(partition by user, date) as number
from sample.test
この方法の良いところは、データに「購入金額」があった場合、同一ユーザーの同一購入日内において、購入金額の高い順、低い順を指定してnumberを振り出すこともできることです。Tableauからデータ接続を行なった、場合、{fixed user : min(xxxx)}や{fixed user : max(xxx)}だと、特定日の購入金額の最大値、最小値は取り出せますが、二番目に購入額の大きかった購買を取り出すのは面倒です。購入金額順に採番されていれば、そんなときにも応用が利きます。
Kida