teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

追記

2019/06/29 14:11

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -6,4 +6,5 @@
6
6
  日付をyyyymmddとし順序を決めるものを順序項目と仮定して、yyyymmdd+連番として、連番を3桁とする場合なら以下のようになります。
7
7
  ```SQL
8
8
  select 日付*1000 + row_number(順序項目) over(partition by 日付 order by 順序項目)
9
- ```
9
+ ```
10
+ ただ、上記の結果の項目を保持するのではなく、日付と順序項目は項目を分けておき、必要な時に編集して取得するようにした方が良いかと思います。

3

推敲

2019/06/29 14:10

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -2,6 +2,7 @@
2
2
  INCREMENTでは増分しか指定できないので、日毎の連番というのは無理ですね。
3
3
 
4
4
  postgresで日付毎の連番を取るなら、[ウィンドウ関数](https://www.postgresql.jp/document/11/html/functions-window.html)のrow_number()を用いる事で可能です。
5
+
5
6
  日付をyyyymmddとし順序を決めるものを順序項目と仮定して、yyyymmdd+連番として、連番を3桁とする場合なら以下のようになります。
6
7
  ```SQL
7
8
  select 日付*1000 + row_number(順序項目) over(partition by 日付 order by 順序項目)

2

訂正

2019/06/29 14:07

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -2,6 +2,7 @@
2
2
  INCREMENTでは増分しか指定できないので、日毎の連番というのは無理ですね。
3
3
 
4
4
  postgresで日付毎の連番を取るなら、[ウィンドウ関数](https://www.postgresql.jp/document/11/html/functions-window.html)のrow_number()を用いる事で可能です。
5
+ 日付をyyyymmddとし順序を決めるものを順序項目と仮定して、yyyymmdd+連番として、連番を3桁とする場合なら以下のようになります。
5
6
  ```SQL
6
- select row_number(連番) over(partition by 日付 order by 連番)
7
+ select 日付*1000 + row_number(順序項目) over(partition by 日付 order by 順序項目)
7
8
  ```

1

推敲

2019/06/29 14:04

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -4,4 +4,4 @@
4
4
  postgresで日付毎の連番を取るなら、[ウィンドウ関数](https://www.postgresql.jp/document/11/html/functions-window.html)のrow_number()を用いる事で可能です。
5
5
  ```SQL
6
6
  select row_number(連番) over(partition by 日付 order by 連番)
7
- ```SQL
7
+ ```