私は自分のデータで顧客の最大日数を見つけようとしています。特定の顧客が作成した最大の日数は何かを知りたい。誰かが25/8/16 AND 26/08/16 AND 27/08/16 AND 01/09/16 AND 02/09/16で自分のアプリに入ると、最大の順序は3日間です(25,26、 27)。PostgreSQLの日付シーケンスを見つける
最後に(出力)私は2つのフィールドを取得したい:custid | MaxDaySequence
私のデータテーブルには次のフィールドがあります。custid |受注日(timestemp)exmpleについては
:
custid orderdate
1 25/08/2007
1 03/10/2007
1 13/10/2007
1 15/01/2008
1 16/03/2008
1 09/04/2008
2 18/09/2006
2 08/08/2007
2 28/11/2007
2 04/03/2008
3 27/11/2006
3 15/04/2007
3 13/05/2007
3 19/06/2007
3 22/09/2007
3 25/09/2007
3 28/01/2008
私はPostgreSQLの2014を使用してい
感謝しよう
:
select custid, max(num_days) as longest
from (
select custid,rn, count (*) as num_days
from (
select custid, date(orderdate),
cast (row_number() over (partition by custid order by date(orderdate)) as varchar(5)) as rn
from table_
) x group by custid, CURRENT_DATE - INTERVAL rn|| ' day'
) y group by custid
: Custid、max(num_days)を長時間で選択 から( )num_daysとしてcustid、rn、count(*)を選択 から(table_からrnとして)(xust_date)、(row_number()を(custid order by order by order))varchar(5))をキャストします。 rn || 'day')y グループby custid – RotemY
"Postgres 2014"のようなものはありません。現在のバージョンは9.6です。 'select version()'はあなたに何を表示しますか? –
gcc(GCC)によってコンパイルされたx86_64-unknown-linux-gnuのPostgreSQL 9.4.5 4.8.2 20140120(Red Hat 4.8.2-16)、64ビット – RotemY