Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 这个简单的选择可以通过使用GROUP BY或Have来改进吗?_Sql_Oracle_Select_Oracle10g - Fatal编程技术网

Sql 这个简单的选择可以通过使用GROUP BY或Have来改进吗?

Sql 这个简单的选择可以通过使用GROUP BY或Have来改进吗?,sql,oracle,select,oracle10g,Sql,Oracle,Select,Oracle10g,我有以下参考数据 STORE_CODE SUPPLIER_CODE ------ ------ ASDA A3 ASDA A2 TESCO A2 TESCO A4 ASDA A4 ASDA A4 ASDA A4 ASDA A4 WAITROSE A3 ASDA A

我有以下参考数据

STORE_CODE      SUPPLIER_CODE
------          ------
ASDA            A3
ASDA            A2
TESCO           A2
TESCO           A4
ASDA            A4
ASDA            A4
ASDA            A4
ASDA            A4
WAITROSE        A3
ASDA            A4
WAITROSE        A3
ASDA            A3
ASDA            A3
ASDA            A4
SAINSBURY       A2
SAINSBURY       A2
SAINSBURY       A6
TESCO           A6
ASDA            A3
TESCO           A3
TESCO           A3
SAINSBURY       A3
WAITROSE        A5
WAITROSE        A5
WAITROSE        A5
WAITROSE        A4
ALDI            A1
ALDI            A1
ALDI            A1
ALDI            A1
ALDI            A1
ALDI            A1
ALDI            A1
ALDI            A1
我想做的是显示一个供应商列表,这些供应商至少有4个与之关联的独特商店

到目前为止,这就是我所说的:

SELECT 
    distinct stoc.supplier_code as SUPPLIER_CODE    
FROM 
        MYTABLE stoc
WHERE
    (select count(distinct a.store_code) from mytable a where a.supplier_code = stoc.supplier_code) >= 4
;
是否仍有优化我的select语句的方法?where子句看起来相当混乱,我想知道是否可以通过使用
groupby
have
来改进它

非常感谢

试试这个:

SELECT COUNT(DISTINCT store_code), supplier_code
FROM myTable
GROUP BY supplier_code
HAVING COUNT(DISTINCT store_code) >= 4
ORDER BY 2