Sqlite 从同一列到另一列进行计数
我试图从customers表中计算基于当前日期创建的今天、本月和上个月的customers,所以我尝试了这个方法Sqlite 从同一列到另一列进行计数,sqlite,Sqlite,我试图从customers表中计算基于当前日期创建的今天、本月和上个月的customers,所以我尝试了这个方法 Select * FROM ( (Select count(c1.id) from customers c1 where c1.created = date('now', 'localtime')) d (Select count(id) from customers where created >= date('now','
Select * FROM
(
(Select count(c1.id) from customers c1 where c1.created = date('now', 'localtime')) d
(Select count(id) from customers where created >= date('now','start of month') AND created <= date('now','start of month','+1 month','-1 day')) m
(Select count(id) from customers where created >= datetime('now', 'start of month') AND created <= date('now', 'localtime')) m
) lm
但是我可以看到他们做对了,我做错了什么?Sqlite 3.7有很多奇怪的bug 1count*和countsinglefield在嵌套查询中返回不同的结果 2外部查询不是从表名而是从字段名中获取字段名,这可能是正确的,但在MSSAL中,我期望其他行为 你的错误呢 3您在选择a、b、c中遗漏了值之间的comas 4lm alias位于错误的位置 如果条件正确,您的查询当然是正确的
Select * FROM
(
(Select count(c1.id) d from customers c1 where c1.created = date('now', 'localtime')) ,
(Select count(id) m from customers where created >= date('now','start of month') AND created <= date('now','start of month','+1 month','-1 day')) ,
(Select count(id) lm from customers where created >= datetime('now', 'start of month') AND created <= date('now', 'localtime'))
)
Sqlite 3.7有许多奇怪的bug 1count*和countsinglefield在嵌套查询中返回不同的结果 2外部查询不是从表名而是从字段名中获取字段名,这可能是正确的,但在MSSAL中,我期望其他行为 你的错误呢 3您在选择a、b、c中遗漏了值之间的comas 4lm alias位于错误的位置 如果条件正确,您的查询当然是正确的
Select * FROM
(
(Select count(c1.id) d from customers c1 where c1.created = date('now', 'localtime')) ,
(Select count(id) m from customers where created >= date('now','start of month') AND created <= date('now','start of month','+1 month','-1 day')) ,
(Select count(id) lm from customers where created >= datetime('now', 'start of month') AND created <= date('now', 'localtime'))
)
以下是您的查询的工作版本:
SELECT d.n as 'Day', m.n as 'Month', lm.n as 'Last Month' FROM
(SELECT count(id) as `n` FROM `customers`
WHERE created >= date('now', 'localtime')
AND created <= date('now', 'localtime','+1 day')) d,
(SELECT count(id) as `n` FROM `customers`
WHERE created >= date('now','start of month')
AND created <= date('now','start of month','+1 month','-1 day')) m,
(SELECT count(id) as `n` FROM `customers`
WHERE created >= date('now','start of month','-1 month')
AND created <= date('now','start of month','-1 day')) lm;
以下是您的查询的工作版本:
SELECT d.n as 'Day', m.n as 'Month', lm.n as 'Last Month' FROM
(SELECT count(id) as `n` FROM `customers`
WHERE created >= date('now', 'localtime')
AND created <= date('now', 'localtime','+1 day')) d,
(SELECT count(id) as `n` FROM `customers`
WHERE created >= date('now','start of month')
AND created <= date('now','start of month','+1 month','-1 day')) m,
(SELECT count(id) as `n` FROM `customers`
WHERE created >= date('now','start of month','-1 month')
AND created <= date('now','start of month','-1 day')) lm;
您从查询中获得了什么?您从查询中获得了什么?从创建>=日期时间“现在”、“月初”和创建的客户中选择countid lm从创建>=日期时间“现在”、“月初”和创建的客户中选择countid lm