Hi have the following tables T1:
field1 | field3
--------+--------
A1 | foo
A2 | v1
A3 | v2
A4 | bar
and T2:
field2 | field3
--------+--------
B1 | foo
B2 | bar
If I do the following request:
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
... I get the following result :
F2:B1, F3:foo, F4:1
F2:B2, F3:bar, F4:4 // I would like F4:2
But I would like F4 to be incremented one by one... I think it is because of the join with T1 but I don’t know how to isolate the ROW_NUMBER...
works
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;
also works AND DENSE_RANK() won't double count
on line 302 here, I go over why I use DENSE_RANK instead of ROW_NUMBER or 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;