gpt4 book ai didi

sql - MySQL - 仅在每个分组值的第一个实例中显示字段值?

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

我不认为这是可能的,但我想证明不是这样。

我写了一个简单的报表查看类,用来输出各种数据库查询的结果。为了改进显示,当我有一个包含分组数据的报告时,我想仅在每个唯一值的第一行显示字段值 - 我想在查询级别执行此操作,否则它会在我的类中需要额外的逻辑来确定这些特殊值。

用一个简单的例子可能有助于说明我的要求。想象一下这个数据集:

Year    Quarter    Total
2008 Q1 20
2008 Q2 25
2008 Q3 35
2008 Q4 40
2009 Q1 15
2009 Q2 20
2009 Q3 30
2009 Q4 35

如果可能,我希望数据集返回为:

Year    Quarter    Total
2008 Q1 20
Q2 25
Q3 35
Q4 40
2009 Q1 15
Q2 20
Q3 30
Q4 35

有没有办法在 MySQL 中以编程方式执行此操作?

最佳答案

SELECT  CASE WHEN @r = year THEN NULL ELSE year END AS year,
quarter,
total,
@r := year
FROM (
SELECT @r := 0
) vars,
mytable
ORDER BY
year

@r 这里是一个 session 变量。您可以在 MySQL 中使用它们,就像在任何过程语言中使用任何变量一样。

首先,它在子查询中被初始化为零。

其次,它在 SELECT 子句中被选中。如果@r的当前值不等于year,则输出year,否则为NULL输出。

第三,它更新为 year 的当前值。

关于sql - MySQL - 仅在每个分组值的第一个实例中显示字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/916000/

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