質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

Presto

Prestoは、Facebook社がオープンソースで公開した分散処理基盤。Hive/Impalaと同じ分散SQLエンジンの一つです。それぞれのタスクが同時進行できる計算モデルを使用。中間データをメモリに持つため、タスク間のデータのやりとりが高速であることが特徴です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

837閲覧

特定の期間の集計を出したい

keeeen

総合スコア2

BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

Presto

Prestoは、Facebook社がオープンソースで公開した分散処理基盤。Hive/Impalaと同じ分散SQLエンジンの一つです。それぞれのタスクが同時進行できる計算モデルを使用。中間データをメモリに持つため、タスク間のデータのやりとりが高速であることが特徴です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2021/11/19 13:24

編集2021/11/19 14:44

記事がたくさんあるメディアをやっており、記事の公開日から10日間のサイト全体のPVの合計を集計したいです。
どのようにしても出来ないのでお力を借りたいです。

関係あるテーブル
・記事テーブル

idpathkoukai_date
1/aaaaa2021-01-01
2/bbbbb2021-01-05
3/vvvvv2021-01-15

・pv

datepv
2021-01-0110
2021-01-0220
2021-01-0330
2021-01-0415
2021-01-0525
2021-01-0635
・・・

のように記事一覧テーブルとこれまでのデイリーでのPVテーブルがあります。

ほしい最終データとしては
|kiji_id|pv_goukei|めも|
|:--|:--:||
|1|250|記事ID1の01-01から01-10までのサイト全体PV合計|
|2|150|記事ID2の01-05から01-15までのサイト全体PV合計|
|3|300|記事ID3の01-15から01-25までのサイト全体PV合計|

のような感じです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mmkkmm

2021/11/19 14:47 編集

pvテーブルも、日別でなく、日別記事id別pv数になってれば、10日間ごとの記事id別合計pv数は作れると思います。pvテーブルが全記事合計pv数しか持ってなければ無理な気がします。 <追記>すいません勘違いしてました、記事id「の公開日」ごとの「公開後10日間の合計pv数」ですね。それならできそうですね
keeeen

2021/11/19 14:44

まだやりたいことのこの続きがあり >記事の公開日から10日間のサイト全体のPVの合計 一旦コレが出したい感じです!
guest

回答1

0

ベストアンサー

pvテーブルの右端に「dateから10日間の全頁合計pv数」を事前に入れておくことが出来れば、あとは以下のSQLで作成出来ました。(MySQL前提ですが、手元で試してみました)

SQL

1SELECT 2 a.id kiji_id, 3 b.pv_goukei, 4 CONCAT("記事ID", a.id, "の", a.koukai_date, "から", DATE_ADD(a.koukai_date, INTERVAL 9 DAY), "までのサイト全体PV合計") "めも" 5FROM 6 kiji a 7 LEFT JOIN pv b 8 ON a.koukai_date = b.date

GROUP BYとか自己結合とか相関サブクエリとかwindow関数の考え方を使えば、事前準備なくても作れる気がします。
が、自分があまり詳しくないので、すいませんが参考になりそうなページのURL貼っておくに留めますmm
(誰かそういういい感じの回答くれるんじゃないでしょうか…自分も勉強しておきます…)


<追記>
以下なら、事前準備なしで出来た感じがします。結果はあってそうなんですが、LEFT JOINのONに(というかONに)イコール以外を指定した経験があまりないので、あってるか正直不安です…

SQL

1SELECT 2 a.id kiji_id, 3 SUM(b.pv) pv_goukei, 4 CONCAT("記事ID", a.id, "の", DATE_FORMAT(a.koukai_date, '%m-%d'), "から", DATE_FORMAT(DATE_ADD(a.koukai_date, INTERVAL 9 DAY), '%m-%d'), "までのサイト全体PV合計") "めも" 5FROM 6 kiji a 7 LEFT JOIN pv b 8 ON a.koukai_date <= b.date 9 AND DATE_ADD(a.koukai_date, INTERVAL 9 DAY) >= b.date 10GROUP BY 11 a.id

投稿2021/11/19 15:25

編集2021/11/19 16:22
mmkkmm

総合スコア103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keeeen

2021/11/20 02:47

ありがとうございます!後ほど試してみます! >pvテーブルの右端に「dateから10日間の全頁合計pv数」を事前に入れておくことが出来れば こちらは自分も思っており、あればすぐできるのですが、いかんせんそのやり方がわからなかったです(泣)
keeeen

2021/11/20 14:10

できました~!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問