Для пары курсоров, где требуется общее количество строк в результирующем сразу после первого FETCH, (после некоторых проб и ошибок) я придумал запрос нижеЧто означает PARTITION BY 1?
SELECT
col_a,
col_b,
col_c,
COUNT(*) OVER(PARTITION BY 1) AS rows_in_result
FROM
myTable JOIN theirTable ON
myTable.col_a = theirTable.col_z
GROUP BY
col_a, col_b, col_c
ORDER BY
col_b
Теперь, когда вывод запроса - это строки X, rows_in_result точно отражает это.
- Что означает PARTITION BY 1?
- Я думаю это, вероятно, указывает базу данных, чтобы разделить результаты на куски 1-рядной каждый
@JeffreyKemp: Я видел ваш комментарий к удаленному ответу. На самом деле, к сожалению, и к моему собственному удивлению, есть * разные способы интерпретации этого простого выражения. –
@OMGPonies: ваш исходный (теперь удаленный) ответ был неправильным для Oracle, но правильный для других баз данных ... –