Как перечислить возвращенные строки в SQL?

Я задавался вопросом, будет ли возможно перечислить возвращенные строки. Не согласно любому содержимому столбца, но просто получению последовательного целочисленного индекса. Например.

select ?, count(*) as usercount from users group by age

возвратил бы что-то вдоль строк:

1    12
2    78
3     4
4    42

это для https://data.stackexchange.com/

18
задан Cœur 29 August 2017 в 13:06
поделиться

5 ответов

попробуйте:

SELECT
    ROW_NUMBER() OVER(ORDER BY age) AS RowNumber
        ,count(*) as usercount 
    from users 
    group by age
17
ответ дан 30 November 2019 в 08:26
поделиться

Если это Oracle, используйте rownum .

SELECT SOMETABLE.*, ROWNUM RN
FROM SOMETABLE
WHERE SOMETABLE.SOMECOLUMN = :SOMEVALUE
ORDER BY SOMETABLE.SOMEOTHERCOLUMN;

Окончательный ответ будет полностью зависеть от того, какую базу данных вы используете.

4
ответ дан 30 November 2019 в 08:26
поделиться

Для MySql:

SELECT  @row := @row + 1 as row FROM anytable a, (SELECT @row := 0) r
3
ответ дан 30 November 2019 в 08:26
поделиться

использовать функцию rownumber , доступную на сервере sql

SELECT 
    ROW_NUMBER() OVER (ORDER BY columnNAME) AS 'RowNumber',count(*) as usercount
    FROM users
1
ответ дан 30 November 2019 в 08:26
поделиться

Как вы это сделаете, зависит от вашего сервера базы данных. В SQL Server вы можете использовать row_number () :

select  row_number() over (order by age)
,       age
,       count(*) as usercount 
from    users 
group by 
        age
order by
        age

Но часто проще и быстрее использовать номера строк на стороне клиента.

1
ответ дан 30 November 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: