web-dev-qa-db-ja.com

1日あたりのユニーク(個別)ユーザーをカウントする

私は新しいto psqlで、1日あたりのユニークユーザーの数を数えることに興味があります。

私のテーブルには、_user_id_(1人のユーザーが1日に複数回使用できる)と、使用時間を示すタイムスタンプである_start_time_の2つの列しかありません。カウントには、min(start_time)がその日に落ちたユーザーのみを含める必要があります。

次のクエリが機能しないのはなぜですか? 2つの変数で別個の変数を一度に選択することはできませんか?

_SELECT COUNT (DISTINCT min(start_time::date), user_id), 
       start_time::date as date 
FROM mytable 
GROUP BY date
_

作り出す

エラー:関数count(date, integer)は存在しません

出力は次のようになります

_        date count
1 2017-11-22    56
2 2017-11-23    73
3 2017-11-24    13
4 2017-11-25    91
5 2017-11-26   107
6 2017-11-27    33...
_

個別のmin Dateとuser_idを数え、psqlで日付ごとにグループ化する方法についての提案があれば、高く評価されます。

2
the_darkside

フォームがオフになっているため、必要なのは

SELECT count(DISTINCT x)
FROM generate_series(1,10) AS gs(x);

または、あなたの場合、

SELECT start_time::date, count(DISTINCT user_id) 
FROM mytable 
GROUP BY start_time::date;
4
Evan Carroll