SELECT 所有最新记录的一列中具有非空值的不同关键字

发布于 2024-08-11 09:51:11 字数 559 浏览 2 评论 0原文

继这个问题之后 选择非空的最新记录一列中的值

我知道有一个问题,我有这个数据

id | keyword | count | date
1 | ipod | 200 | 2009-08-02
2 | ipod | 250 | 2009-09-01
3 | ipod | 150 | 2009-09-04
4 | ipod | NULL | 2009-09-07
5 | apple | 100 | 2009-07-01
6 | apple | 98 | 2009-07-05
7 | apple | 500 | 2009-07-30
8 | itunes | NULL | 2009-08-30
9 | itunes | 50 | 2009-09-10
10 | itunes | NULL | 2009-09-15

并且需要一个查询来提取行 3、7 和 9 具有最新日期且非空的行。

Following on from this question
SELECT the newest record with a non null value in one column

I know have a problem where I have this data

id | keyword | count | date
1 | ipod | 200 | 2009-08-02
2 | ipod | 250 | 2009-09-01
3 | ipod | 150 | 2009-09-04
4 | ipod | NULL | 2009-09-07
5 | apple | 100 | 2009-07-01
6 | apple | 98 | 2009-07-05
7 | apple | 500 | 2009-07-30
8 | itunes | NULL | 2009-08-30
9 | itunes | 50 | 2009-09-10
10 | itunes | NULL | 2009-09-15

And need a query which will fetch out rows
3, 7 and 9
Row which has the newest date and is non-null.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最美的太阳 2024-08-18 09:51:11

使用:

SELECT t.id,
       t.keyword,
       t.count,
       t.date
  FROM TABLE t
  JOIN (SELECT t.keyword,
               MAX(t.date) 'max_date'
          FROM TABLE t
         WHERE t.count IS NOT NULL
      GROUP BY t.keyword) x ON x.keyword = t.keyword
                           AND x.max_date = t.date

Use:

SELECT t.id,
       t.keyword,
       t.count,
       t.date
  FROM TABLE t
  JOIN (SELECT t.keyword,
               MAX(t.date) 'max_date'
          FROM TABLE t
         WHERE t.count IS NOT NULL
      GROUP BY t.keyword) x ON x.keyword = t.keyword
                           AND x.max_date = t.date
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文