gpt4 book ai didi

SQL-SQLite 计算连续数字

转载 作者:行者123 更新时间:2023-12-03 01:03:28 24 4
gpt4 key购买 nike

我有一个包含以下数据的表格:

id | numbers | date
----------------------------------
1 | -1-4-6- | 2009-10-26 15:30:20
2 | -1-4-7- | 2009-10-26 16:45:10
3 | -4-5-8- | 2009-10-27 11:21:34
4 | -2-6-7- | 2009-10-27 13:12:56
5 | -1-3-4- | 2009-10-28 14:22:14
6 | -1-2-4- | 2009-10-29 20:28:16
. . ....... . ...................

在此示例表中,我使用 like 查询来计算数字,例如:

select count(*) from table where numbers like '%-4-%'
Result: 5

现在,我如何计算(使用 like)一个数字连续出现的次数(在本例中为数字 4)?我的意思是:数字 4 连续出现在 id 1,2,3 和 5,6 上,所以我想得到一个结果为 2 的查询。

最佳答案

这应该可以。

create table "table" (id int, numbers text);
insert into "table" values (1, '-1-4-6-');
insert into "table" values (2, '-1-4-7-');
insert into "table" values (3, '-4-5-8-');
insert into "table" values (4, '-2-6-7-');
insert into "table" values (5, '-1-3-4-');
insert into "table" values (6, '-1-2-4-');

SELECT count(*)
FROM (
SELECT "table".*, temp1.id, temp2.id
FROM "table"
INNER JOIN "table" temp1
ON "table".id = temp1.id+1
LEFT JOIN (
SELECT id FROM "table" WHERE numbers LIKE '%-4-%'
) temp2 ON temp1.id+1 = temp2.id+2

WHERE "table".numbers LIKE '%-4-%'
AND "temp1".numbers LIKE '%-4-%'
AND temp2.id IS NULL
) consecutive_groups_gt_1

[[编辑:添加测试数据并更正引用]]

[[编辑:将查询更改为仅在存在至少有 2 个成员的行组时进行计数]]

关于SQL-SQLite 计算连续数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1648051/

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