如何在 SQLite 中通过组查询使用 T-SQL 的 ROW_NUMBER? [英] how to use ROW_NUMBER of T-SQL in SQLite with group by query?

查看:34
本文介绍了如何在 SQLite 中通过组查询使用 T-SQL 的 ROW_NUMBER?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经检查过了:如何在 sqlite 中使用 ROW_NUMBER

但这对我没有帮助.我有这样的查询 &它返回我错误的行索引.查询有什么问题?

But it's not helpful for me. I've query like this & it returns me false row index. What's wrong with the query?

SELECT (select count(*) from medicalrecords b where a.id >= b.id ) as cnt,avg(bmi)
FROM MedicalRecords a 
WHERE Date BETWEEN datetime('now', '-1 month') AND datetime('now', 'localtime') 
group by strftime('%W', Date)

SQL 小提琴

推荐答案

这可以在单个查询中完成,但使用 VIEW 会变得更容易:

This can be done in a single query, but using VIEW will become much easier:

-- Groups (without sequencial):
CREATE VIEW Grp0 AS SELECT DISTINCT STRFTIME('%W', Date) AS Week FROM MedicalRecords WHERE Date BETWEEN DATETIME('NOW', '-1 month') AND DATETIME('now', 'localtime');

-- Groups (with sequencial):
CREATE VIEW Grp AS SELECT (SELECT COUNT() FROM Grp0 AS _ WHERE Week<=Grp0.Week), Week FROM Grp0;

-- Query:
SELECT Week, (SELECT AVG(bmi) FROM MedicalRecords WHERE STRFTIME('%W', Date) = Week)) FROM Grp;

这篇关于如何在 SQLite 中通过组查询使用 T-SQL 的 ROW_NUMBER?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆