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

SQL查询以获取与另一列的MAX值对应的列值?

乜明朗
2023-03-14
问题内容

好的,这是我的查询:

SELECT
  video_category,
  video_url,
  video_date,
  video_title,
  short_description,
  MAX(video_id) 
FROM
  videos
GROUP BY
  video_category

当它提取数据时,我得到了video_id的正确行,但它为其他每个类别都提取了第一行。因此,当我得到类别1的video_id的最大结果时,我得到了最大ID,但表的第一行是url,日期,标题和说明。

如何获取与最大ID结果相对应的其他列?

编辑:固定。

SELECT
    *
FROM
    videos
WHERE
    video_id IN
    (
        SELECT
            DISTINCT
            MAX(video_id)
        FROM
            videos
        GROUP BY
            video_category
    ) 
ORDER BY
    video_category ASC

问题答案:

我会尝试这样的事情:

SELECT
   s.video_id
   ,s.video_category
   ,s.video_url
   ,s.video_date
   ,s.video_title
   ,short_description
FROM videos s
   JOIN (SELECT MAX(video_id) AS id FROM videos GROUP BY video_category) max
      ON s.video_id = max.id

这比您自己的解决方案要快得多



 类似资料:
  • 问题内容: 我下面有显示反社会犯罪总数的代码,但我也希望从另一个称为be output的表中获取代码。我试图找到一种解决方法,但无法使其正常工作。有任何想法吗? 问题答案: 您要用来查找位置名称。该查询可能看起来像这样: 您需要为和输入正确的列名称。

  • 问题内容: 如果每个员工有多个联系方式,我将获得多行,但我只希望每位员工列出他们的姓,名,部门名称,电子邮件和电话。 所以它应该像这样 这是我所拥有的,但不起作用: 我用以下查询解决了它: 问题答案: 如果要选择,则在子查询中,这两个联接可能是不必要的: 由于它们,您得到的行与特定人的联系人一样多。 最终查询可能类似于:

  • 我有一个类似的例子,类似于我的另一个问题Pandas:在多个列上使用字典映射列,但是现在,我想不直接使用列“category”的max()值,而是间接使用它来填充第四列“category_name”中的None与问题1中的情况相同,但是增加了一个包含字符串的列。 此处“类别”列始终是填充的,而“类别名称”列有一些缺失值: 我想再一次用值填充无/南,我想使用的逻辑是:使用列“类别”中最大值的行的列“

  • 问题内容: 好吧,让我用例子来解释我的问题 我们有1个表此表包含 现在的例子 现在当提取为 我想用代表姓名的那个数字替换第三列的数字值 所以取的例子 我怎样才能做到这一点 ?谢谢你 问题答案: 您可以将同一张表连接两次以将替换为。将在contidion联接表再次相匹配,然后你可以选择从该表() SQLFiddle示例

  • 问题内容: 我想将一列的值除以另一列的值,并将结果显示为单独的列 前任: 现在我想将总百分比除以屏幕编号,然后在另一列中显示结果 问题答案:

  • 问题内容: 如果没有在产品表的描述列中输入任何值,则默认情况下,我希望它等于在product_name列中的值。我尝试了如下操作,但没有成功。这可能吗? 问题答案: 常见的解决方案是创建一个用于显示数据的视图。在视图中,您可以计算描述。像这样