【问题标题】:SELECT distinct field in Querydsl在 Querydsl 中选择不同的字段
【发布时间】:2016-02-18 14:16:02
【问题描述】:

我想问一下如何在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

谢谢。

【问题讨论】:

    标签: jpa eclipselink querydsl


    【解决方案1】:

    您的 SQL 看起来像 Postgres-Query。因此,最好的方法是在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());
    

    【讨论】:

      猜你喜欢
      • 2014-12-01
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 2011-01-28
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多