SQLITE查询同一个表两次,并将这些查询放到两个不同的列中?
问题描述:
我的问题是如何做两个select语句,并在单独的colummns结果?SQLITE查询同一个表两次,并将这些查询放到两个不同的列中?
例如,
我的陈述
Select count(*) as "JAN" from tickets where created_at BETWEEN "2015-01-01" AND "2015-01-31"
Select count(*) as "FEB" from tickets where created_at BETWEEN "2015-02-01" AND "2015-02-25"
我试图把一个逗号,并把括号中的第二陈述但是这并没有任何工作。我不确定我究竟做错了什么。任何人都可以看看这个?提前感谢您的时间。
答
我想你甚至都不需要一个连接,如SQLite的支持CASE expression:
select
sum(case
when created_at between '2015-01-01' and '2015-01-31' then 1
else 0 end) as "JAN",
sum(case
when created_at between '2015-02-01' and '2015-02-25' then 1
else 0 end) as "FEB"
from tickets
+0
谢谢!这正是我所期待的。我无法弄清楚这个功能被称为什么。 – user614885
答
你可以把选择存储标量子查询:
SELECT (SELECT COUNT(*)
FROM tickets
WHERE created_at GLOB '2015-01*-') AS "JAN",
(SELECT COUNT(*)
FROM tickets
WHERE created_at GLOB '2015-02-*') AS "FEB";
+0
我也想谢谢你。上面的答案是我一直在寻找的,但你确实指出了我在另一个方向去研究更多的东西。我很感激。 – user614885
你可以用加入做到这一点。 –
加入使用相同的表?我只是在一个单独的桌子上工作的印象。 – user614885
@ user614885是的,您可以多次加入同一个表格,通常使用不同的ON条件。 –