群上SQLITE的中值
我有以下问题:我需要组的sqlite中值 示例:我有一个网络,它有多个起点和终点,每个起点和终点之间有几个行程距离。我现在需要每个开始/结束对的中间值 下表:群上SQLITE的中值,sql,sqlite,Sql,Sqlite,我有以下问题:我需要组的sqlite中值 示例:我有一个网络,它有多个起点和终点,每个起点和终点之间有几个行程距离。我现在需要每个开始/结束对的中间值 下表: Start | End | Time A | B | 5 A | B | 9 A | B | 6 B | C | 4 B | C | 8 C | A | 5 C
Start | End | Time
A | B | 5
A | B | 9
A | B | 6
B | C | 4
B | C | 8
C | A | 5
C | B | 6
我希望得到以下结果:
Start | End | Median(Time)
A | B | 6
B | C | 6
C | A | 5
C | B | 6
我已经看到了如何计算中间值:,但我不知道如何将其应用于群体
要创建表,请使用以下代码:
CREATE TABLE "Times" ("Key" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "START" TEXT, "END" TEXT, "TIME" INTEGER);
INSERT INTO "Times" VALUES(1,'A','B',5);
INSERT INTO "Times" VALUES(2,'A','B',9);
INSERT INTO "Times" VALUES(3,'A','B',6);
INSERT INTO "Times" VALUES(4,'B','C',4);
INSERT INTO "Times" VALUES(5,'B','C',8);
INSERT INTO "Times" VALUES(6,'C','A',5);
INSERT INTO "Times" VALUES(7,'C','B',6);
非常感谢您的帮助。我无法让它正常工作。您无法在限制或偏移范围内访问外部嵌套表,但a得到了以下答案:
SELECT Start, End, AVG(Time) FROM (
SELECT *, (
SELECT COUNT() FROM Times AS _
WHERE Start=Times.Start AND End=Times.End AND (Time>Times.Time OR Time=Times.Time AND ROWID>Times.ROWID)
)-(
SELECT COUNT() FROM Times AS _
WHERE Start=Times.Start AND End=Times.End AND (Time<Times.Time OR Time=Times.Time AND ROWID<Times.ROWID)
) AS m FROM Times WHERE m BETWEEN -1 AND 1
) GROUP BY Start, End;
只需在每个FROM…之后添加WHERE子句。。。!