SELECT COUNT(*),TRUNC(TEST_DATE_CREATE)
FROM TEST_TABLE
WHERE TEST_DATE_CREATE > (SYSDATE - 10)
GROUP BY TRUNC(TEST_DATE_CREATE);
如果某个特定日期没有记录,我需要上面的查询返回计数0。这似乎没有发生。
我尝试了NVL,解码。发现这个问题是由于分组的子句,但不知道如何解决这个问题。
请帮忙!!
很难理解你想要什么,但是
select decode(count(*), 0, null, count(*))
当组中没有记录时,将返回null。
更新:现在更清楚你想要什么:
select date_code, cnt
from(
select trunc(sysdate-10) + level - 1 as date_code
from dual
connect by level <= 10
)
left join(
SELECT COUNT(*) cnt,TRUNC(TEST_DATE_CREATE) trunc_create
FROM TEST_TABLE
WHERE TEST_DATE_CREATE > (SYSDATE - 10)
GROUP BY TRUNC(TEST_DATE_CREATE);
) on trunc_create = date_code
更新2:现在更清楚你想要什么,零而不是空值:
select date_code, count(*)
from(
select trunc(sysdate-10) + level - 1 as date_code
from dual
connect by level <= 10
)
left join TEST_TABLE on TRUNC(TEST_DATE_CREATE) = date_code
GROUP BY date_code;
您需要生成一个您感兴趣的日期列表,然后对表进行左外连接,以查找与每个日期匹配的记录。比如:
with tmp_dates as (
select trunc(sysdate) - level + 1 as tmp_date
from dual
connect by level <= 10
)
select count(tt.test_date_create), td.tmp_date
from tmp_dates td
left join test_table tt on trunc(tt.test_date_create) = td.tmp_date
group by td.tmp_date
order by tmp_date;
公共表表达式本身生成日期列表:
select trunc(sysdate) - level + 1 as tmp_date
from dual
connect by level <= 10;
TMP_DATE
---------
10-JUN-13
09-JUN-13
08-JUN-13
07-JUN-13
06-JUN-13
05-JUN-13
04-JUN-13
03-JUN-13
02-JUN-13
01-JUN-13
您可以调整级别
限制,以及如何将其添加到sysdate
以修改范围,例如进一步回溯或排除今天。
然后,主select使用它来查找匹配的记录。因为它是一个外部连接,所以它会列出所有生成的日期,如果没有匹配项,则计数为零。
SQL小提琴。
问题内容: 我正在尝试使查询工作从表单控件获取值(有时只是字符串的第一部分)。我的问题是,仅在键入完整字符串时它才返回记录。 即在姓氏框中,我应该能够键入gr,它会弹出 绿灰色格雷厄姆 但是目前,除非使用完整的搜索字符串,否则它不会显示任何内容。 所涉及的表单上有4个搜索控件,并且仅当填写该框时才在查询中使用它们。 查询是: 问题答案: 有一种访问方法! 如果您在表单上具有“过滤器”控件,那么为什
问题内容: 我在Elasticsearch中有一个小型数据库,出于测试目的,我想拉回所有记录。我正在尝试使用以下形式的网址… 有人可以给我您用来完成此操作的URL吗? 问题答案: 我认为支持lucene语法是这样的: 大小默认为10,因此您可能还需要获取10个以上的商品。(其中BIGNUMBER等于您认为大于数据集的数字) 但是,elasticsearch文档建议使用扫描搜索类型针对大型结果集。
首先,我知道这个查询有点混乱,但它可以正常工作,直到至少有一条记录存在,并且设置为true,此时没有返回任何记录。如果有另一条记录的设置为false或两者的组合,则它可以正常工作,即返回的记录的所有票证总数都设置为0或适当的值。 我已将查询更新为,并将票证表联接更改为left(也尝试了full outer),但它仍然存在上述问题。 为什么会发生这种情况,我能做些什么来防止它?
我正在运行一个gremlin匹配查询,该查询根据图的某些属性的值来限制结果。当我在gremlin控制台中运行查询时,我得到了91个与模式匹配的顶点。当我通过javascript websocket连接运行相同的查询时,只返回了64个。如果我向查询中添加.count(),则得到预期的91。是否有允许检索所有结果的设置? g、 V().match(_uu.as('Patient')。hasLabel(
问题内容: 我每月都有一组职位。现在,我需要一个数组,其中包含每个月发布的帖子总数。我尝试下面的MySql查询,它的工作正常,但我期望0(零)几个月没有记录。在这里,它不返回0。 我读到COUNT()不会返回“ 0”,那么我该如何实现呢? 我尝试了IFNULL()和COALESCE(),但仍然得到相同的结果。请帮助此查询。谢谢你...... 结果: 预期结果(没有一月份的职位): 样本数据: 问题
我有一个查询,我用了很长时间才找到。我在一个有500k行的表的单个分区上运行它。 查询如下所示: 我将其设置为,因此查询返回0行。 此查询大约需要30秒(如果我使用,则需要一分钟)。 当我运行完全相同的查询但使用时,需要2秒。 是什么原因导致查询在使用选择列时花费很长时间,而在使用选择计数(列)时不花费时间? 这是解释的问题 *项目[col0#607] -*过滤器(isnotnull(col1#6