gpt4 book ai didi

MySQL:在 WHERE 找到相似条目时选择最高列值

转载 作者:可可西里 更新时间:2023-11-01 08:20:36 24 4
gpt4 key购买 nike

我的问题相当于this one , 但不完全相同。

我有一个包含大量书籍的数据库,其中一些相同的书名有不同的版本。我正在寻找一个 SQL 语句,它为我提供了我使用 WHERE 子句选择的每个标题的最高版本号(以查找特定的书籍系列)。表格如下所示:

|id|title                    |edition|year|
|--|-------------------------|-------|----|
|01|Serie One Title One |1 |2007|
|02|Serie One Title One |2 |2008|
|03|Serie One Title One |3 |2009|
|04|Serie One Title Two |1 |2001|
|05|Serie One Title Three |1 |2008|
|06|Serie One Title Three |2 |2009|
|07|Serie One Title Three |3 |2010|
|08|Serie One Title Three |4 |2011|
|--|-------------------------|-------|----|

我要找的结果是这样的:

|id|title                    |edition|year|
|--|-------------------------|-------|----|
|03|Serie One Title One |3 |2009|
|04|Serie One Title Two |1 |2001|
|08|Serie One Title Three |4 |2011|
|--|-------------------------|-------|----|

我得到的最接近的是使用这个语句:

select id, title, max(edition), max(year) from books where title like "serie one%" group by title;

但它返回最高版本和年份并包括它找到的第一个 id:

|--|-----------------------|-------|----|
|01|Serie One Title One |3 |2009|
|04|Serie One Title Two |1 |2001|
|05|Serie One Title Three |4 |2011|
|--|-----------------------|-------|----|

这个奇特的连接也很接近,但没有给出正确的结果:

select b.id, b.title, b.edition, b.year from books b inner join (select name, max(edition) as maxedition from books group by title) g on b.edition = g.maxedition where b.title like "serie one%" group by title;

使用它我得到了独特的标题,但主要是旧版本。

最佳答案

您可以使用子查询:

select b1.id, 
b1.title,
b1.edition,
b1.year
from books b1
inner join
(
select max(edition) edition, title
from books
group by title
) b2
on b1.edition = b2.edition
and b1.title = b2.title

参见 SQL Fiddle with Demo

或者您可以使用 IN 子句:

select id, title, edition, year
from books b
where edition in (select max(edition)
from books b1
where b.title = b1.title
group by title);

参见 SQL Fiddle with Demo

关于MySQL:在 WHERE 找到相似条目时选择最高列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13582789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com