首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server :子查询中的最大值

SQL Server :子查询中的最大值
EN

Stack Overflow用户
提问于 2021-12-09 11:13:42
回答 4查看 84关注 0票数 0

请帮我检索最大值。我创建了几个简单的表。第一个是用户,第二个是书籍。因此,我需要使用子查询来检索图书的名称,其中用户获取的日期是最新的。

以下是几张桌子:

代码语言:javascript
复制
CREATE TABLE book_base 
(
    book_id int,
    user_id int,
    title VARCHAR(20),
    date DATE,
); 

CREATE TABLE users 
(
    userid int,
    name VARCHAR(20),
); 

INSERT INTO book_base (book_id, user_id, title, date)
VALUES ('221', 1, 'Just book', '2021-2-2'),
       ('222', 1, 'The book', '2020-4-8'),
       ('223', 1, 'My book', '2019-8-8'),
       ('228', 2, 'Nice book', '2021-1-2'),
       ('225', 2, 'Coole book', '2020-4-8'),
       ('226', 2, 'Super book', '2019-9-8');

INSERT INTO users (userid, name) 
VALUES ('1', 'John Smith'),
       ('2', 'Mary Adams');

我也试过这样做

代码语言:javascript
复制
SELECT
    userid AS [UID], 
    name AS [UserName], 
    bb.title, bb.date 
FROM
    users u
JOIN 
    (SELECT user_id title, MAX(date) 
     FROM book_base) bb ON u.userid = bb.user_id

结果应该是行,日期是最大日期。

EN

回答 4

Stack Overflow用户

发布于 2021-12-09 11:23:57

试试这个,它是基于您所获得的数据:

代码语言:javascript
复制
SELECT *
FROM users u
JOIN (
  select user_id,MAX(date) as DATE 
  from book_base GROUP BY user_id
) bb ON u.userid = bb.user_id
JOIN book_base b ON u.userid = b.user_id
AND bb.date = b.date
票数 0
EN

Stack Overflow用户

发布于 2021-12-09 11:26:47

您可以将Cross Apply与使用Top 1 With Ties的子查询一起使用。

代码语言:javascript
复制
Select u.userid As [UID], u.name As [UserName], bb.title, bb.date 
From users u Cross Apply 
    (Select Top 1 With Ties user_id, title, date 
     From book_base
     Where user_id=u.userid 
     Order by date Desc) As bb
票数 0
EN

Stack Overflow用户

发布于 2021-12-09 11:33:31

使用关联子查询按最大日期进行筛选

代码语言:javascript
复制
select b1.*, u.name
from book_base b1
join users u on u.userid = b1.user_id
where date = (select max(b2.date) 
             from book_base b2 
             where b2.user_id = b1.user_id)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70288925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档