[SQL] Postgres에서 중복도 제거하고 다른 컬럼 기준으로 정렬하기(DISTINCT, ORDER BY, subquery
SQL(Postgres)로 해보기
//Postgres
SELECT *
FROM ( SELECT DISTINCT ON (중복을 제거할 컬럼명) * FROM 테이블명 WHERE name='a') as foo
ORDER BY id DESC; // 정렬할 컬럼
python SQLAlchemy로 해보기
from sqlalchemy import desc
// 중복을 제거한 서브커리를 생성한다.
sub_images = db.query(테이블명).distinct(테이블명.컬럼명).filter(테이블명.컬럼명==컬럼에서찾을내용).subquery()
// 서브커리를 ORDER BY로 정렬한다.
tests = db.query(sub_images).order_by(desc("id")).all()
SQLAlchemy에서 서브커리를 생성한 뒤 서브커리를 다시 order_by를 할때는 'id' 이런식으로 문자열을 넣어줘야 작동이 됩니다. sub_images.id 이런식으로는 에러 메세지가 나옵니다.
'프로그래밍사업 > 사이드 프로젝트' 카테고리의 다른 글
SQLAlchemy로 이미 있는 데이터베이스(기존 테이블) 사용하기 (0) | 2022.07.05 |
---|---|
FASTAPI 사용을 위한 SQLAlchemy(ORM) 기초 - 1탄 초기설정, 데이터 입력하기 (0) | 2022.07.04 |
장고(django)보다 쉽게 FastAPI로 간단한 CRUD 만들기 (0) | 2021.10.30 |
SQLALCHEMY를 이용한 PostgreSQL 사용법 (0) | 2021.08.16 |
Fast API를 이용한 인스타그램 크롤러 만들기 (0) | 2021.07.28 |
댓글