SELECT Querydsl 中的不同字段
SELECT distinct field in Querydsl
我想问一下如何在 Querydsl 4 中创建一个 SELECT Distinct on field
。最好的方法是什么 SQL 请求:
SELECT DISTINCT ON
(company_id, EXTRACT(MONTH FROM createddt), EXTRACT(YEAR FROM createddt)) id,
createddt
FROM companystats
ORDER BY company_id,
EXTRACT(MONTH FROM createddt) DESC,
EXTRACT(YEAR FROM createddt) DESC,
createddt DESC
谢谢。
您的 SQL 看起来像一个 Postgres 查询。因此,最好的方法是在 com.querydsl.sql.postgresql.PostgreSQLQuery
中使用 distinctOn
。
PostgreSQLQuery query = new PostgreSQLQuery(con);
query.select(companystats.id, companystats.createddt)
.distinctOn(companystats.company_id,
companystats.createddt.month(), companystats.createddt.year())
.from(companystats)
.orderBy(companystats.createddt.month().desc(),
companystats.createddt.year().desc(),
companystats.createddt.desc());
我想问一下如何在 Querydsl 4 中创建一个 SELECT Distinct on field
。最好的方法是什么 SQL 请求:
SELECT DISTINCT ON
(company_id, EXTRACT(MONTH FROM createddt), EXTRACT(YEAR FROM createddt)) id,
createddt
FROM companystats
ORDER BY company_id,
EXTRACT(MONTH FROM createddt) DESC,
EXTRACT(YEAR FROM createddt) DESC,
createddt DESC
谢谢。
您的 SQL 看起来像一个 Postgres 查询。因此,最好的方法是在 com.querydsl.sql.postgresql.PostgreSQLQuery
中使用 distinctOn
。
PostgreSQLQuery query = new PostgreSQLQuery(con);
query.select(companystats.id, companystats.createddt)
.distinctOn(companystats.company_id,
companystats.createddt.month(), companystats.createddt.year())
.from(companystats)
.orderBy(companystats.createddt.month().desc(),
companystats.createddt.year().desc(),
companystats.createddt.desc());