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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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回答

1266閲覧

ログイン回数を日毎単位でカウントするSQLを教えてほしいです。

ajapar

総合スコア3

MySQL

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

SQL

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2022/02/09 10:52

1日1回以上ログインした場合を1回とカウントするSQLを教えてほしいです。
以下の例だと、3日1回、4日2回、5日3回ログインした場合、日単位で3回ログインしているので「3」とカウントするSQLを知りたいです。

テーブル名:logins

user_id, login_datetime
1000000001, '2022-02-03 10:00:00.000000'
1000000001, '2022-02-04 10:00:00.000000'
1000000001, '2022-02-04 10:00:00.000000'
1000000001, '2022-02-05 10:00:00.000000'
1000000001, '2022-02-05 10:00:00.000000'
1000000001, '2022-02-05 10:00:00.000000'

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

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

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

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

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

YT0014

2022/02/09 23:36

ご質問の内容は、ログイン以外の記録でも同様であり、ログインに由来する問題点も確認できません。 タグ「ログイン」は削除されることをお勧めします。
guest

回答3

0

SQL

1create table logins( 2id int primary key, 3user_id int, 4login_datetime datetime, 5index(user_id,login_datetime) 6); 7insert into logins values 8(1,1000000001, '2022-02-03 10:00:00'), 9(2,1000000001, '2022-02-04 10:00:00'), 10(3,1000000001, '2022-02-04 10:00:00'), 11(4,1000000001, '2022-02-05 10:00:00'), 12(5,1000000001, '2022-02-05 10:00:00'), 13(6,1000000001, '2022-02-05 10:00:00'), 14(7,1000000002, '2022-02-05 10:00:00'), 15(8,1000000002, '2022-02-06 10:00:00'); 16 17select user_id, 18count(distinct date_format(login_datetime,'%Y%m%d')) as cnt 19from logins 20group by user_id

投稿2022/02/10 00:52

yambejp

総合スコア114784

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

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

0

ベストアンサー

2段階で処理すればよいかと。

まず、user_idと、login_datetimeを日付変換した値でgroup化したSQLを組んで、日付単位のログインを取得します。
その結果を、user_idでgroup化し、countで個数を取得すれば、ご希望の結果になるでしょう。

投稿2022/02/09 23:40

YT0014

総合スコア1708

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

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

0

失礼致しました。誤った回答でしたので削除しておきます。

投稿2022/02/09 16:31

編集2022/02/10 06:02
nikuatsu

総合スコア177

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問