Я бегу следующий запрос на Postgres
:Как использовать row_number() правильно
SELECT a.testscoreid,
COUNT(a.*) AS Questions,
a.created,
ROW_NUMBER() OVER (PARTITION BY Questions) AS Number,
b.irt_tlevel
FROM asmt.testscores a
JOIN asmt.questions b ON a.questionid = b.questionid
WHERE a.answered = TRUE
AND a.testscoreid = '53bd6ed5da2cfe7baf0d97ed'
AND irt_tlevel IS NOT NULL
GROUP BY a.testscoreid,
a.created,
b.irt_tlevel
ORDER BY Questions DESC,
a.created ASC
, который дает мне следующий результат:
Testscoreid Questions Created Number irt_tlevel
53bd6ed5da2cfe7baf0d97ed 272 2014-07-09 09:33:25.0 1 easy
53bd6ed5da2cfe7baf0d97ed 38 2014-07-09 09:33:25.0 1 hard
53bd6ed5da2cfe7baf0d97ed 34 2014-07-09 09:33:25.0 1 medium
Я хотел бы иметь приращение Number
столбца каждый раз, для всех questionid
. Я думаю, что я что-то пропустил в row_number()
.
Я хочу, чтобы номер столбца увеличивался для всех вопросов. Например, я хотел бы иметь 272 строки (с увеличением числа) для простых вопросов в приведенном выше примере, 38 строк для жестких и 34 строки для среды. В общем, я хотел бы иметь (272 + 38 + 34) строк, с Number
приращением в соответствии с Created
.
Любые предложения будут оценены.
Я удивлен, что вы можете использовать псевдоним 'Questions' в предложении кадрирования. Это имеет смысл с точки зрения порядка обработки ('row_number()' логически выполняется после 'group by'), но SQL Server и Oracle не поддерживают использование псевдонима в этом контексте. –
Кажется, что на самом деле вы хотите (272 + 38 + 34) строк в своем выходе, почему вы их объединяете? –