gpt4 book ai didi

MySql 识别每个组中的行。

转载 作者:行者123 更新时间:2023-11-29 10:04:33 25 4
gpt4 key购买 nike

需要排序的数据集,第 1 列显示在第一个记录上,但不显示其余记录。我可以添加另一列 bool 值来确定哪个是第一条记录。下面是所需的结果。

+--------+------------+-------+
| type | variety | price |
+--------+------------+-------+
| apple | gala | 2.79 |
| | fuji | 0.24 |
| | limbertwig | 2.87 |
| orange | valencia | 3.59 |
| | navel | 9.36 |
| pear | bradford | 6.05 |
| | bartlett | 2.14 |
| cherry | bing | 2.55 |
| | chelan | 6.33 |
+--------+------------+-------+

最佳答案

SELECT `type`, `variety`, `price`
FROM (
SELECT IF(@prev != t.`type`, t.`type`, '') AS `type`
, t.`variety`, t.`price`
, @prev := t.`type` AS actualType
FROM theTable AS t
CROSS JOIN (SELECT @prev := '') AS init
ORDER BY t.`type`, t.`variety`, t.`price`
) AS subQ

我已经有一段时间没有做过这样的事情了,但这就是总体想法。

  • init 子查询仅用于初始化 @prev session 变量。
  • IF 使用“最后出现的”类型来确定是否显示该类型。
  • 别名为 actualType 的表达式会更新处理的下一行的 @prev session 变量。
  • 需要使用 ORDER BY 来对行进行排序,以便 @prev 能够正确运行;在某些情况下,我不得不将 ORDER BY 放入更深的子查询 (SELECT ... FROM theTable ORDER BY ...) AS t 以确保它不会在涉及 @ 的表达式之后应用上一页

关于MySql 识别每个组中的行。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52171048/

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