Sql 数一数帽子戏法
我有这样一个结果集: 结果 L W W W L L W W WSql 数一数帽子戏法,sql,sql-server,Sql,Sql Server,我有这样一个结果集: 结果 L W W W L L W W W 我想计算在SQL Server中W连续出现三次的次数。请帮忙 您需要的是SQL Server中的超前/滞后功能 这是一个工作示例,假设1=赢,0=输 CREATE TABLE WINLOSS ( WINLOSSID INT NOT NULL IDENTITY PRIMARY KEY, WIN BIT NOT NULL ); INSERT INTO WINLOSS VALUES (1),(0),(1),(1),(1),(0
我想计算在SQL Server中W连续出现三次的次数。请帮忙 您需要的是SQL Server中的超前/滞后功能 这是一个工作示例,假设1=赢,0=输
CREATE TABLE WINLOSS (
WINLOSSID INT NOT NULL IDENTITY PRIMARY KEY,
WIN BIT NOT NULL
);
INSERT INTO WINLOSS VALUES (1),(0),(1),(1),(1),(0),(1),(0),(1),(1),(1);
WITH TMP AS (
SELECT
WINLOSSID,
WIN,
LAG(WIN, 1) OVER (ORDER BY WINLOSSID) LAG1,
LAG(WIN, 2) OVER (ORDER BY WINLOSSID) LAG2
FROM WINLOSS
)
SELECT COUNT(1)
FROM TMP
WHERE WIN = 1 AND LAG1 = 1 AND LAG2 = 1
请发布您遇到问题的代码。为什么要在SQL中这样做?实际数据表有多大?无法使用指定的数据。SQL表表示无序集。您的问题定义需要排序。您需要将顺序表示为数据中的一列,例如id或创建时间。