gpt4 book ai didi

mysql - 生成此报告的最有效方法是什么?

转载 作者:行者123 更新时间:2023-11-29 01:45:17 25 4
gpt4 key购买 nike

给定一个表 (daily_sales),其中包含 10 万行以下数据/列:

id    rep   sales  date  
1 a 123 12/15/2011
2 b 153 12/15/2011
3 a 11 12/14/2011
4 a 300 12/13/2011
5 a 120 12/12/2011
6 b 161 11/15/2011
7 a 3 11/14/2011
8 c 13 11/14/2011
9 c 44 11/13/2011

编写报告(完全使用 SQL)显示每个名称的两个最新条目(rep、sales、date)的最有效方法是什么,因此输出将是:

a  123  12/15/2011  
a 11 12/14/2011
b 153 12/15/2011
b 161 11/15/2011
c 13 11/14/2011
c 44 11/13/2011

谢谢!

最佳答案

仅供引用,您的示例主要使用保留字,这让我们很难尝试针对它进行编程。如果您有真正的表格列,请将其提供给我们。这是 postgres:

select name,value, max(date)
from the_table_name_you_neglect_to_give_us
group by 1,2

这将为您提供一个包含名字、值、最大值(日期)的列表...不过我想问一下,如果示例中的值没有变化,为什么要给我们一个名为值的列?

假设您确实有一个 id 列...我们将与您的方案保持一致并将其称为“ID”...

 select b.id from
(select name,value, max(date) date
from the_table_name_you_neglect_to_give_us
group by 1,2) a
inner join the_table_name_you_neglect_to_give_us b on a.name=b.name and a.value=b.value and a.date = b.date

这给出了所有最大 ID 的列表...将其放在一起:

select name,value, max(date)
from the_table_name_you_neglect_to_give_us
group by 1,2

联合所有

select name,value, max(date)
from the_table_name_you_neglect_to_give_us
where id not in
(select b.id from
(select name,value, max(date) date
from the_table_name_you_neglect_to_give_us
group by 1,2) a
inner join the_table_name_you_neglect_to_give_us b on a.name=b.name and a.value=b.value and a.date = b.date)

希望我的语法是正确的...无论如何应该接近。我会在整个内容周围加上括号,然后按名称从(查询上方)顺序中选择 * ...为您提供所需的顺序。

关于mysql - 生成此报告的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8528210/

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