[SQL] 어떻게 PostgreSQL의 쿼리에서 행 번호를 표시합니다?
SQL어떻게 PostgreSQL의 쿼리에서 행 번호를 표시합니다?
나는 PostgreSQL의 쿼리에 의해 반환 된 각 레코드에 대한 관찰 번호를 표시하고 싶습니다.
이 기능을 수행 할 수 있습니다 나는 8.4 윈도 기능으로 생각합니다.
해결법
-
==============================
1.
select row_number() over (order by <field> nulls last) as rownum, * from foo_tbl order by <field>
순서가 필요하지 않은 경우,이 대답은 간단 할 수있다 :
select row_number() over(), * -- notice: no fields are needed from foo_tbl
개념의 SQL 바이올린 증명
-
==============================
2.이전 8.4 버전 :
이전 8.4 버전 :
SELECT count(*) rownum, foo.* FROM datatable foo JOIN datatable bar ON (foo.pk_id <= bar.pk_id) GROUP BY foo.pk_id, foo.a, foo.b ORDER BY rownum ; -- if there isn't a single unique/primary key field, you can concatenate fields -- Example: ON (foo.a||foo.b||foo.c <= bar.a||bar.b||bar.c)
이 사람을 도움이되기를 바랍니다.
개념의 SQL 바이올린 증명
나는 모든 비용이 피할 수 있지만, 후대를 위해 그것을 포함하고 싶어하는 것이 좋습니다. 그것은 다소 비싼 내가 잘 확장되지 않습니다 상상하지만, 기본 키 테이블 (나쁜 DB 설계)에 존재하지 않는 경우, 옵션은 제한 될 수 있습니다. 이들 대부분의 경우에서, 포인트는 애플리케이션 계층에 넘버링을 수행하는 것이다.
-- Based on basic table w/o primary key -- CREATE TABLE names ( name as text ); SELECT num, name[num] FROM ( select generate_series( 1, (select count(*) from names) ) as num ) _nums, ( select array_agg(name) as name from names ) _names
개념의 SQL 바이올린 증명
이 확장되지 않는 이유 :
from https://stackoverflow.com/questions/3397121/how-to-show-row-numbers-in-postgresql-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL "IN"절에 튜플을 사용하여 (0) | 2020.05.08 |
---|---|
[SQL] MySQL은 - 열에서 문자를 교체 (0) | 2020.05.08 |
[SQL] Laravel 고급 알의 방법 함수에 변수를 전달하는 방법? (0) | 2020.05.08 |
[SQL] 정체성 대 순서 (0) | 2020.05.08 |
[SQL] T-SQL에서 정렬 된 테이블에서 행 M부터 N 행을 얻는 방법 (0) | 2020.05.08 |