PSQL: ROW_NUMBER постоянно увеличивается - PullRequest
0 голосов
/ 12 сентября 2018

Привет, есть следующие таблицы T1:

 field1 | field3
--------+--------
 A1     | foo
 A2     | v1
 A3     | v2
 A4     | bar

и T2:

 field2 | field3 
--------+--------
 B1     | foo 
 B2     | bar

Если я сделаю следующий запрос:

SELECT DISTINCT ON (T2.field2, T2.field3)
  T2.field2 AS F2,
  T2.field3 AS F3,
  ROW_NUMBER () OVER (ORDER BY T2.field3) AS F4
FROM T2
JOIN T1 ON T2.field3=T1.field3

...Я получаю следующий результат:

F2:B1, F3:foo, F4:1
F2:B2, F3:bar, F4:4 // I would like F4:2

Но я бы хотел, чтобы F4 увеличивался один за другим ... Я думаю, что это из-за соединения с T1, но я не знаю, как изолировать ROW_NUMBER....

1 Ответ

0 голосов
/ 12 сентября 2018

работает

SELECT DISTINCT ON (T2.field2, T2.field3)
  T2.field2 AS F2,
  T2.field3 AS F3,
  ROW_NUMBER () OVER (ORDER BY T2.field3 DESC) AS F4
FROM T2
JOIN T1 ON T2.field3=T1.field3;

также работает И DENSE_RANK () не будет дважды считать

в строке 302 здесь, я перейду, почему я использую DENSE_RANK вместо ROW_NUMBER или RANK https://github.com/pavankat/fantasy-football/blob/master/db/queries.sql

SELECT DISTINCT ON (T2.field2, T2.field3)
  T2.field2 AS F2,
  T2.field3 AS F3,
  DENSE_RANK() OVER (ORDER BY T2.field3 DESC) AS F4
FROM T2
JOIN T1 ON T2.field3=T1.field3;
...