当前位置: 首页 > 面试题库 >

如何选择一组最小值的行,同时还使用where子句

奚翰海
2023-03-14
问题内容

我有一张桌子,可以跟踪课程的出勤情况。列是课程编号,课程,人员编号和日期。我有一个查询(如下),该查询提取一个人出现的最早日期以及相关的课程,课程和人格信息。这用于确定某人何时开始特定课程,并确保他们从第一堂课开始。这工作正常,但我遇到的问题是每个课程都运行此查询。例如,找到每个人在特定课程中的开始日期,而不是每个课程的开始日期。现在,我只是在运行更通用的查询,并在biz层中对其进行过滤。

我对此感到困惑,因此请原谅任何错别字:

select a.courseid, 
       a.lesson, 
       a.personid, 
       a.thedate 
from (select personid, 
             min(thedate) as earliestdate 
      from attendance 
      group by personid) as x 
inner join attendance as a on (a.personid = x.personid and a.thedate = x.thedate)

问题答案:

只需对person_id进行分组,当然可以在内部查询中进行:

select a.courseid, a.lesson, a.personid, a.thedate 
from (
    select personid, courseid, min(thedate) as earliestdate 
    from attendance 
    group by personid, courseid
) as x 
inner join attendance as a 
  on (a.personid = x.personid and 
      a.thedate = x.thedate and 
      a.courseid=x.course_id)


 类似资料:
  • 问题内容: 这就是我想要做的。假设我有这张桌子t: 对于每个ID,我想选择包含最小record_date的行。所以我会得到: 我看到的唯一解决方案是假定所有record_date条目都是不同的,但在我的数据中并非如此。使用带有两个条件的子查询和内部联接将为我提供某些ID的重复行,这是我不想要的: 问题答案: 怎么样: 这将获取每个ID的最短日期,然后基于这些值获取值。唯一的重复项是同一ID的最小r

  • 问题内容: 可以说我有一个包含许多这样的行的表: 我正在做一个简单的查询,像这样: 运行此查询后,我得到如下结果: 非常简单 :) 我现在需要做的是选择计数大于10的具有最小和最大利润的行(这是一个参数) 我能够通过此获得最小值: 我正在考虑使用ORDER BY DESC进行上述查询,但这不是最佳解决方案。 我需要做的是: 选择2行:按范围分组时,第一行最少,第二行最大AVG利润。 编辑: 如果我

  • 问题内容: 仅使用SQL(MySQL),我想选择一个父子关系的最后一个子行,其中子行按时间戳排序。 例如,使用表和,我想分别获取每个表的最新记录(即带有最新时间戳的记录)。 产生类似于下表的结果集的最佳SQL语法是什么? 问题答案:

  • 问题内容: 我有包含以下字段的表: 如何创建SQL,请选择按ID,DATE_FROM,DATE_TO对结果进行分组并从价格中选择最低的值。 所以结果是 问题答案:

  • JPA Criteria似乎坚持认为min()(和max())只适用于数字字段。然而,情况并非如此,因为SQL数据库确实可以从字符串列中选择min()和max()值。我还可以使用JQL选择字符串列的min()或max()值。 但是,当使用条件查询时,编译器会在 min() 与字符串列一起使用时进行报错:绑定不匹配:条件生成器类型的泛型方法 min(表达式)不适用于参数(子查询.get(“strin

  • 本文向大家介绍如何使用dplyr在R数据框中选择具有分组分组的变量的最小值或最大值的行?,包括了如何使用dplyr在R数据框中选择具有分组分组的变量的最小值或最大值的行?的使用技巧和注意事项,需要的朋友参考一下 如果R数据帧包含具有许多组级别的组变量,则很难根据组级别找到离散变量或连续变量的最小值和最大值。但这可以通过dplyr包中的slice函数来完成。 考虑下面的数据帧,该数据帧具有一组变量,