私はPostgreSQLで複数の行を折りたたみようとしています。 先月、ウェブアプリケーションの特定のページの「ページビュー」を計算しています。PostgreSQLは複数の行を1つのカスタムとして縮約します
/title/342fer243r
/title/1rf3f134r4
/title/141f14r1tr
そして私はで終わるしたいと思います:
SELECT DISTINCT page_urlpath AS "URL",
COUNT(DISTINCT (domain_userid)) AS "Unique views"
FROM "atomic".events
WHERE derived_tstamp > current_date - integer '31'
GROUP BY 1
ORDER BY 2 DESC
出力は次のようになります
/title/subtitle
私はすべての行を折りたたむには、私のクエリを完璧に方法がわかりませんよ
/title/*
とjus 1つのカスタム名前付き行。
** UPDATE **
私はのようなものを考えていた:
SELECT DISTINCT Regexp_replace(page_urlpath, 'title/(*)', 'title/subtitle') AS "URL",
Count(DISTINCT (domain_userid)) AS "Unique views"
FROM "atomic".events
WHERE derived_tstamp > CURRENT_DATE - integer '31'
GROUP BY 1
ORDER BY 2 DESC ;
しかし、私は "すべて" の部分が動作しないことを知っています。 'title/(*)',
。良いアイデア?
**常に**の最初の要素を取りたいですか?また、 'current_date - 整数' 31 'は 'current_date - 31'に簡略化することができます –
私はすべての' 4h23u5hi4 'をもっと意味のあるものに崩壊して名前を変更したいと思います。 URLの最初の要素は実際には必要ありません。 – s0ren
私の質問に言い換えることができます:関連する部分**のみです**最初の部分、または一部のURLでは最初の部分、他の部分では最初と2番目の部分、もう1つは2番目と3番目の部分です。 URL? –