sql - 如何按一个字段过滤唯一值?
问题描述
我想通过一个字段和两个日期从数据库中获取唯一值
我的实体字段访问:
- ID
- 客人身份
- 日期
我有一些方法,我想通过唯一字段“guestId”获取访问列表:
@Query("SELECT DISTINCT v FROM Visit v WHERE v.date BETWEEN :start AND :to")
List<Visit> getBetween(@Param("start") Date start, @Param("to") Date to);
但到此期间,我得到了所有实体的列表。
我试过查询:
"SELECT DISTINCT FROM visits WHERE date BETWEEN :start AND :to"
但它也不起作用。
例如:
表“访问”示例:
Id GuestId Date
100 200 2019.09.07
101 201 2019.09.07
102 200 2019.09.07
103 201 2019.09.08
104 201 2019.09.08
105 200 2019.09.08
106 201 2019.09.09
107 201 2019.09.09
108 200 2019.09.09
接下来我想做查询
从访问中选择不同的日期,其中日期介于:'2019.09.08' 和:'2019.09.08' 之间
我想获得以下列表:
GuestId Date
201 2019.09.08
200 2019.09.08
请帮我找到执行查询
谢谢。
解决方案
您必须使用guestId
和date
字段创建类并使用本机查询,例如:
class DistinctVisitView {
Integer guestId;
LocalDate date;
}
@Query(nativeQuery = true, value = "SELECT DISTINCT guest_id, date FROM visits WHERE date BETWEEN :start AND :to")
List<DistinctVisitView> getBetween(@Param("start") Date start, @Param("to") Date to);
推荐阅读
- python - 加速 Dijkstra 算法
- javascript - 如何从 dc.js selectMenu 中删除附加提示选项“全选”?
- python - 使用列表选择具有多个条件的数据框记录
- algorithm - RDD连续子集的Scala Spark执行
- android - DataBindingUtil 将布局膨胀为空
- mysql - 如何更改 mySQL 中的存储引擎?
- reactjs - .net core 3.1 with react - 根据身份角色渲染导航菜单项
- html - 如何使 Flexbox 和内部 Flexbox 垂直滚动
- typo3 - 带有新 symfony 表达式语法的排版条件
- c# - 将值“null”转换为类型“System.Nullable`1[System.Int64]”时出错