Querydsl distinct 多个字段

叙述

Querydsl 中 使用 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,
    EXTRACT(YEAR FROM createddt) DESC,
    createddt DESC

querydsl

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());
发布了22 篇原创文章 · 获赞 30 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/lizhengyu891231/article/details/103529752