Jpa 在Querydsl中选择不同的字段
我想问一下如何在Querydsl 4中的字段上选择Distinct。执行此SQL请求的最佳方法是什么:Jpa 在Querydsl中选择不同的字段,jpa,eclipselink,querydsl,Jpa,Eclipselink,Querydsl,我想问一下如何在Querydsl 4中的字段上选择Distinct。执行此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,
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());
您的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());