gpt4 book ai didi

MySql,到目前为止计算一列并将结果放在另一列中

转载 作者:行者123 更新时间:2023-11-29 09:30:20 26 4
gpt4 key购买 nike

表中有3列:id(主键,自动增加),item(varchar),idx(int)。选择表order by id,想要给每个项目一个序列索引以显示其相同值的序列号,并将索引放在idx列中。结果是这样的:

+--+----+---+
|id|item|idx|
+--+----+---+
|1 |a |1 | < the 1st a
+--+----+---+
|2 |b |1 | < the 1st b
+--+----+---+
|3 |b |2 | < the 2nd b
+--+----+---+
|4 |b |3 | < the 3rd b
+--+----+---+
|5 |a |2 | < the 2nd a
+--+----+---+

如何通过选择输出它?

最佳答案

获取具有相同项目和相同或更低 ID 的行数的相关子查询应该可以工作,在 8 以下的版本中也是如此。

SELECT t1.id,
t1.item,
(SELECT count(*)
FROM elbat t2
WHERE t2.item = t1.item
AND t2.id <= t1.id) idx
FROM elbat t1;

如果 item 可为空,则可能需要一些调整,具体取决于您如何定义 NULL item 的相等性。

关于MySql,到目前为止计算一列并将结果放在另一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58858644/

26 4 0