繁体   English   中英

组上的行编号不正确

Incorrect row numbering on group

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

感谢您帮助我学习mysql。

我正在尝试动态生成仅在组中(对于给定列)有新记录时才递增的行号。 我的代码可以正常工作-它应该在适当的时候更改,但是值都错了。

我有一个称为fruits的表,只有一个称为preference列( varchar )。 它按此顺序有九(9)个记录:

Apples
Pears
Apples
Oranges
Bananas
Pears
Oranges
Apples
Bananas

这与组的增量行号构成的挑战相同( t-index ),但是该解决方案使用了(我认为)一个新的mysql Window函数,该函数仅在mysql v8可用(我认为),我的网站不支持主机(因为CPanel尚不支持)。

这是我的代码...

SET @row_num=1,@currFruit='';

SELECT @row_num=CASE WHEN fruit.preference=@currFruit 
                    THEN @row_num 
                    ELSE @row_num:=@row_num+1 END AS 'RowNum', 
    preference, @currFruit:=fruit.preference    
FROM fruit
ORDER BY fruit.preference;

结果显示动态生成的行号应在何时更改,但初始值是错误的,不应重置每个组,它们不应继续递增(苹果应为1、2、3),(香蕉应为1,2),(橙色1,2),(梨1,2)

这是不正确的输出 ....

@RowNum  preference         @currFruit:=fruit.preference
0        Apples             Apples
1        Apples             Apples
1        Apples             Apples
0        Bananas            Bananas
1        Bananas            Bananas
0        Oranges            Oranges
1        Oranges            Oranges
0        Pears              Pears
1        Pears              Pears
1 个回复

=@row_num = CASE ...正在比较@row_num到的结果CASE表达式,它返回1为真, 0为假。 您应该在那里分配:=

您还CASECASE错误的后果。 @currFruit相同时,应添加1,否则应将其设置回1。

SELECT @row_num := CASE WHEN fruit.preference=@currFruit 
                    THEN @row_num + 1
                    ELSE 1 END AS 'RowNum', 
    preference, @currFruit:=fruit.preference    
FROM fruit
ORDER BY fruit.preference

演示

1 行编号顺序不正确

我有两个表(问题和答案),其中一个行用于回答问题,另一个用于回答问题。 问题更改时,问题的行号会增加。 答案的行号使每个答案递增,并针对每个新问题重置为1。 两个行编号都按预期增加,但是排序顺序错误。 另外,我不希望查询输出的变量检查当前记录的问题是否与最后一条记录的问题匹配。 我 ...

2019-09-09 07:24:59 1 68   mysql
3 分组和排序后的Mysql行编号

我想做的是查询中的行号,这样我就知道它将出现在哪一页上。 我有一个类似于下面的查询。 我的期望是查询返回的行的顺序与它们编号的顺序相同-也就是说row_num会在结果集中很好地递增。 问题出在GROUP BY ,导致2-3行最终乱序(删除GROUP BY语句后,所有编号均按顺序排列 ...

4 按组编号观察

我试图给组内的观察编号,然后确定每个组中的第一个和最后一个观察。 我知道如何执行此操作,甚至针对过去的问题在此处发布了解决方案。 但是,我现在偶然发现了一种情况,我的解决方案不起作用,我无法弄清楚原因。 感谢您对如何使下面的第二个示例起作用的任何建议。 第一个示例确实有效。 对不起 ...

2014-01-15 20:34:47 2 124   r
5 表中组中的序列号

我列出了约9万种产品和约2000家供应商。 每个产品应获得唯一的产品代码,我们公司将以以下格式进行编码: First 2 letters of the suppliers name, 5 digit suppliers number and a 5 digit product number i ...

6 报告上按组分组的页码

我有一个报告,我想在不同的页面中按组显示记录。 假设组有足够的记录来覆盖多个页面。 另外在小组页脚部分我总计。 我希望按组编号。 例如,第1组包含2页,因此编号必须是第1页和第2页,第2组包含3页,因此页码必须是​​第1页,第2页和第3页。我已成功按组编号,但页面显示时只有组页脚部分,我 ...

7 GROUP_CONCAT 编号

是否可以在 GROUP_CONCAT 中编号 喜欢 如果,从 GROUP_CONCAT(empnam SEPARATOR ', ') 给我一套 我需要有 我尝试了以下,但没有得到想要的结果。 是否可以在查询级别进行,或者我必须在应用程序端进行? ...

8 ColdFusion cfpdf缩略图编号不正确

我正在ColdFusion中使用cfpdf函数来创建文档包,即将一系列文档合并到一个PDF文件中。 合并工作正常,缩略图图像正确链接到其各自的页面。 但是,缩略图下方显示的页码不正确。 在过程中的某个时刻,编号重新开始,如下图所示: 仅当给cfpdf函数提供了要使用的目录时才会 ...

9 数据分组编号

我有两个数据文件,我将根据第二个文件中的数字对第一个文件进行组编号。(如图像) 这是代码: 问题是程序开始运行,但似乎永远不会结束处理,这对于这个简单的过程来说非常奇怪!! 有没有人可以帮助我如何解决它。 非常感谢提前:) ...

10 MYSQL自动编号组

我有一些情况,例如: 查询: 这是我的示例文本数据 项目: 只有这些东西对我来说足够了,谢谢 但是我需要一个结果,如果项目不同或已更改,则自动编号的计数会从1开始倒数。 就像从我的样本图像结果来看,数字10必须返回1 ,下一个必须再次返回1,2,3,4 , ...

2018-04-18 10:35:33 2 47   mysql
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM