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

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

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

Redash(Re:dash)は、ダッシュボードツールでOSSで提供されています。Python製やBigQuery/MySQL/PostgreSQLなどのデータストアに対応。クエリを設定することで結果をデータリストにしたり、グラフプロットすることができます。

Amazon Athena

Amazon Athenaは、標準SQLを使用してAmazon S3内のデータを直接分析することができるインタラクティブなクエリサービスです。

MySQL

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

2621閲覧

月をまたぐと日が取れない(AthenaSQL)

narudake

総合スコア8

Redash

Redash(Re:dash)は、ダッシュボードツールでOSSで提供されています。Python製やBigQuery/MySQL/PostgreSQLなどのデータストアに対応。クエリを設定することで結果をデータリストにしたり、グラフプロットすることができます。

Amazon Athena

Amazon Athenaは、標準SQLを使用してAmazon S3内のデータを直接分析することができるインタラクティブなクエリサービスです。

MySQL

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/02/13 06:33

編集2020/02/14 05:32

AthenaSQLで二週間前から一週間前までのデータを取得しようとしたら
7日前→12日前までは取得できたのですがこれを14日前や13日前にすると空白のカラムが現れてしまいました。
確認すると丁度月をまたぐタイミングでした。
これについてアドバイスを頂戴できますと幸いです

SQL

1with provisional as( 2SELECT DATE_FORMAT(CAST(year || '-' || month || '-' || day || ' ' || substring(time,8,5) as timestamp),'%Y/%m/%d %H:%i') AS tm 3 , ip 4 , id 5 , quer 6 , resp 7FROM ~~~~ 8WHERE and code='200' 9AND "year" >= DATE_FORMAT(now() - interval '14' day,'%Y') 10AND "year" < DATE_FORMAT(now() - interval '7' day,'%Y') 11AND "month" >= DATE_FORMAT(now() - interval '14' day,'%m') 12AND "month" < DATE_FORMAT(now() - interval '7' day,'%m') 13AND "day" >= DATE_FORMAT(now() - interval '14' day,'%d')--12にすると12日前は表示。 14AND "day" < DATE_FORMAT(now() - interval '7' day,'%d') 15group by DATE_FORMAT(CAST(year || '-' || month || '-' || day || ' ' || substring(time,8,5) as timestamp),'%Y/%m/%d %H:%i') 16 , xip 17 , id 18 , quer 19 , resp 20order by tm 21) 22select tm, avg(resp) AS resp 23from provisional 24group by tm 25order by tm

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

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

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

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

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

Orlofsky

2020/02/13 08:05

[MySQL]タグって関係あるの?
narudake

2020/02/13 11:23

SQLでよかったですかね。。。 MySQL使ってる人が多そうなんでつけました。
guest

回答3

0

自己解決

AND DATE_FORMAT(CAST(year || '-' || month || '-' || day || ' ' || substring(time,8,5) as timestamp),'%Y/%m/%d %H:%i') >= DATE_FORMAT(now() - interval '14' day,'%Y/%m/%d')
AND DATE_FORMAT(CAST(year || '-' || month || '-' || day || ' ' || substring(time,8,5) as timestamp),'%Y/%m/%d %H:%i') < DATE_FORMAT(now() - interval '7' day,'%Y/%m/%d')

投稿2020/02/14 05:32

narudake

総合スコア8

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

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

sazi

2020/02/14 06:05

解決して良かったですね。 コードで括って見易すくすると、後学者の為になります。 「コードを下さい。」だけでなく、自力でたどり着いて報告したという事で評価しておきます。 ※当たり前の事なので、今回だけですけど。
narudake

2020/02/14 08:25

あたたかいお言葉をありがとうございます!
guest

0

AND DATE_FORMAT(CAST(year || '-' || month || '-' || day || ' ' || substring(time,8,5) as timestamp),'%Y/%m/%d %H:%i') >= DATE_FORMAT(now() - interval '14' day,'%Y/%m/%d') AND DATE_FORMAT(CAST(year || '-' || month || '-' || day || ' ' || substring(time,8,5) as timestamp),'%Y/%m/%d %H:%i') < DATE_FORMAT(now() - interval '7' day,'%Y/%m/%d')

投稿2020/02/14 08:27

narudake

総合スコア8

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

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

0

year, month, dayがそれぞれで表しているのですから当然そうなると思います。
year, month, dayを結合し、日付型にして比較するべきでしょう

投稿2020/02/13 07:34

sazi

総合スコア25327

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

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

narudake

2020/02/13 08:40

ありがとうございます!システム上一次テーブルがつくれないのですがそれでも可能でしょうか。 よろしくお願いします。
sazi

2020/02/13 11:39

テーブルは関係ないです。 where 条件でyear, month, dayを使用して日付型に変換したものと比較すれば良いだけです。
narudake

2020/02/14 01:54 編集

convertでしょうか。。。 申し訳ございません。もしよければクエリを ご教示いただくことは可能でしょうか。 どうぞよろしくお願いします。
narudake

2020/02/14 08:27 編集

ありがとうございます! AND DATE_FORMAT(CAST(year || '-' || month || '-' || day || ' ' || substring(time,8,5) as timestamp),'%Y/%m/%d %H:%i') >= DATE_FORMAT(now() - interval '14' day,'%Y/%m/%d') AND DATE_FORMAT(CAST(year || '-' || month || '-' || day || ' ' || substring(time,8,5) as timestamp),'%Y/%m/%d %H:%i') < DATE_FORMAT(now() - interval '7' day,'%Y/%m/%d') これで解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問