Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 不使用分组计数_Sql_Oracle - Fatal编程技术网

Sql 不使用分组计数

Sql 不使用分组计数,sql,oracle,Sql,Oracle,您好,我想使用子查询, 在子查询中,无法使用Group By function进行计数,因此我希望在不使用Group By function的情况下对多个获取列进行计数 Select Count (STS_FK_GLUSR_ID) from STS_DSR_SALES@mainr, STS_company@mainr where STS_DSR_SALES.FK_STS_company_id = fk_STS_COMPANY_ID and STS_company.STS_F

您好,我想使用子查询, 在子查询中,无法使用Group By function进行计数,因此我希望在不使用Group By function的情况下对多个获取列进行计数

 Select  Count (STS_FK_GLUSR_ID) 
 from STS_DSR_SALES@mainr, STS_company@mainr 
 where STS_DSR_SALES.FK_STS_company_id = fk_STS_COMPANY_ID
     and STS_company.STS_FK_GLUSR_ID = STS_FK_GLUSR_ID



SAMPLE DATA

STS_DSR_SALES_DATE|STS_FK_GLUSR_ID
22-4-2019         |291
24-4-2019         |245
29-4-2019         |345
26-4-2019         |346
24-4-2019         |256
24-4-2019         |256
26-4-2019         |346

My expected Result is 

STS_FK_GLUSR_ID| count
291            |1
245            |1
345            |1
346            |2
256            |2

为什么要使用子查询

简单使用

Select Count (STS_DSR_SALES_DATE), STS_FK_GLUSR_ID
from STS_DSR_SALES@mainr, STS_company@mainr 
where STS_DSR_SALES.FK_STS_company_id = fk_STS_COMPANY_ID
     and STS_company.STS_FK_GLUSR_ID = STS_FK_GLUSR_ID
GROUP BY STS_FK_GLUSR_ID;

让我们试试我的水晶球

阅读到目前为止发布的评论,我认为这是你正在做的事情;但是无效,因为子查询返回两列(
count
STS\u FK\u GLUSR\u ID9
),而
某些列只返回一列:

select *
from some_table
where some_column = (
                    -- this is your query with GROUP BY clasue
                    Select  STS_company.STS_FK_GLUSR_ID,
                            Count (STS_FK_GLUSR_ID) 
                    from STS_DSR_SALES@mainr, STS_company@mainr 
                    where STS_DSR_SALES.FK_STS_company_id = fk_STS_COMPANY_ID
                      and STS_company.STS_FK_GLUSR_ID = STS_FK_GLUSR_ID
                    --
                    group by STS_company.STS_FK_GLUSR_ID
                   )
当查询返回5行时,不能说
some\u column=

但是,您可以尝试使用
中的某个列

下面是它的样子;
count
已删除,
已添加

select *
from some_table
where some_column in (
                      Select  STS_company.STS_FK_GLUSR_ID
                      from STS_DSR_SALES@mainr join STS_company@mainr 
                           on STS_DSR_SALES.FK_STS_company_id = fk_STS_COMPANY_ID
                          and STS_company.STS_FK_GLUSR_ID     = STS_FK_GLUSR_ID
                      --
                      group by STS_company.STS_FK_GLUSR_ID
                      having count(*) > 1
                     )

如果这并不是一个铃声,那么,考虑把你真正拥有的和你想从中得到的东西,即完成后的测试用例(<代码>创建表< /代码>和代码>插入到< /代码>)。您不能同时使用SQL Server和Oracle。删除了SQL Server,因为他提到Oracle SQLDeveloper是客户端。没有按函数分组-这是一个子句。为什么不能使用分组方式进行计数?首先。无论是谁回答了这个问题,我都想知道你是怎么做的。因为我想将此查询用作子查询,而无法在子查询中使用它,因为它提供了太多的值。我必须在组中使用。你的意思是什么?请不要用你的查询编辑我的答案。而是把它放在你的问题里。您的代码有几个语法错误。(请检查您的caps lock钥匙)