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

SQL按最新日期选择具有两个唯一列的行

靳金鹏
2023-03-14
问题内容

使用以下查询和结果,我正在寻找ChargeId和ChargeType唯一的最新条目。

select chargeId, chargeType, serviceMonth from invoice

    CHARGEID    CHARGETYPE  SERVICEMONTH
1   101     R       8/1/2008
2   161     N       2/1/2008
3   101     R       2/1/2008
4   101     R       3/1/2008
5   101     R       4/1/2008
6   101     R       5/1/2008
7   101     R       6/1/2008
8   101     R       7/1/2008

期望的:

    CHARGEID    CHARGETYPE  SERVICEMONTH
1   101     R       8/1/2008
2   161     N       2/1/2008

问题答案:

您可以使用GROUP BY按类型和ID对项目进行分组。然后,您可以使用MAX()聚合函数来获取最近的服务月份。以下返回带有ChargeId,ChargeType和MostRecentServiceMonth的结果集

SELECT
  CHARGEID,
  CHARGETYPE,
  MAX(SERVICEMONTH) AS "MostRecentServiceMonth"
FROM INVOICE
GROUP BY CHARGEID, CHARGETYPE


 类似资料:
  • 问题内容: 我试图一次从一张桌子上得到2行。上周的最小日期时间(今天-7)和最晚的日期(今天)的一个。 我的桌子: 我可以通过以下方式选择上周的数据: 但我只想要第1行和第125行,因为这些是用于计算的行。所以我的问题是: 如何从上一个查询的结果中选择2行(带有MIN和MAX日期)? 问题答案: 您可以使用此: 编辑: 由于两台计算机完全有可能具有相同的值,因此应更新查询以在子句中也包含过滤器。我

  • 我有一个具有以下示例结构的表: 还有很多列,但这些列不需要计算,所有列都应该从查询中返回。 我希望SQL查询仅返回标识符列的唯一记录以及每个唯一标识符的最新日期。不幸的是,在DateWhenStatusObsted列中也有日期为NULL的记录,并且在许多情况下,标识符(geosite)的唯一记录具有NULL日期。 对于类似的SQL问题,已经有很多答案,例如: 如何在最小值或最大值中包含空值? 仅选

  • 问题内容: 这应该是一个简单的问题,但我无法使其起作用:( 如何按另一列分组选择具有最大列值的行? 例如, 我有以下表格定义: 现在的问题是,我想先按结果分组,然后再从每组中选择一行,具体取决于哪一组具有最高的。 我试过了 但是,与其以正确的方式回报我,不如以同一个小组中最早的回报我。 有任何想法吗? 问题答案: 我本人为此进行了很多次努力,解决方案是以不同的方式考虑您的查询。 我希望其中具有该D

  • 问题内容: 我有一个数据库,如下所示; 我想做的是产生一个结果,该结果具有该日期最早()的每个客户的KWH读数,该日期将由用户以Web形式选择。 结果将/应该类似于; 这里显示的行数超过了每天,并且有更多的客户,并且客户数量会定期更改。 我在SQL方面没有太多经验,我研究过子查询等,但是我没有内容来弄清楚如何按最早阅读每个客户的方式来安排它,然后仅输出该列。 它在Redhat / CentOS上的

  • 问题内容: 我有一张桌子,如下所示: 请注意,MyDate格式为YYMMDD,而MyTime为24小时格式。 我想用最新的MyDate和MyTime返回唯一的MyKey的结果。预期的结果将是这样的: 任何帮助都感激不尽。谢谢。 问题答案: 首先,将日期和时间列合并为日期时间,以便轻松订购它们。自从我使用Sql Server以来已经有一段时间了,但是row_number()函数和分区是一种查找由另一

  • 问题内容: 今天早上我想把头缠起来。 我试图显示零件状态(针对我们的产品),并且仅当我尝试退回所有零件时,此查询才会变得复杂。 让我来说明一下: 单桌 我有一个要显示的X零件的不同列表,其结果必须是X#行(每个零件1行,显示最新的库存条目)。 该表由库存变更的过时条目组成(因此我只需要每个零件的日期条目)。 该表中包含所有数据,因此无需联接。 当前只有1个部分,这非常简单,我可以通过执行以下sql