Sql 使用DISTINCT使用具有相同数据的SELECT子句

Sql 使用DISTINCT使用具有相同数据的SELECT子句,sql,oracle,Sql,Oracle,例如,在我的employee表中,我有这些数据 //EMPLOYEE E# NAME CITY -------------------------- 1 JOHN ENGLAND 2 SITI ENGLAND 3 JESS GERMANY 4 HOLY BOSTON 当我运行此语句时: SELECT DISTINCT CITY, COUNT(E#) as "Tota

例如,在我的employee表中,我有这些数据

//EMPLOYEE
E#       NAME        CITY
--------------------------
1        JOHN       ENGLAND
2        SITI       ENGLAND
3        JESS       GERMANY
4        HOLY       BOSTON
当我运行此语句时:

SELECT DISTINCT CITY, COUNT(E#) as "Total Employee" FROM EMPLOYEE Where CITY=;
我应该为什么插入值

//CITY=?
为了得到这样的结果

CITY          TOTAL EMPLOYEE
----------------------------
ENGLAND              2
GERMANY              1
BOSTON               1
使用GROUPBY或having子句不是不可能的吗

回答固定!谢谢

好吧,你没有排除任何城市,所以你根本不需要一个
WHERE
子句!但您确实需要一个
分组依据
进行计数。您只需执行以下操作:

SELECT CITY, COUNT(E#) as "Total Employee" 
FROM EMPLOYEE 
GROUP BY CITY
但是,如果您只想包括这三个城市(即使基础数据中添加了更多),您可以执行以下操作:

SELECT CITY, COUNT(E#) as "Total Employee" 
FROM EMPLOYEE 
WHERE CITY IN ('ENGLAND', 'GERMANY', 'BOSTON')
GROUP BY CITY
好吧,您没有排除任何城市,因此根本不需要
WHERE
子句!但您确实需要一个
分组依据
进行计数。您只需执行以下操作:

SELECT CITY, COUNT(E#) as "Total Employee" 
FROM EMPLOYEE 
GROUP BY CITY
但是,如果您只想包括这三个城市(即使基础数据中添加了更多),您可以执行以下操作:

SELECT CITY, COUNT(E#) as "Total Employee" 
FROM EMPLOYEE 
WHERE CITY IN ('ENGLAND', 'GERMANY', 'BOSTON')
GROUP BY CITY

我已经有一段时间没有做任何SQL了,但我很确定选择DISTINCT就足以。。。选择不同的值。在您的示例中,您可以删除WHERE子句。到目前为止你都试了些什么?谢谢你。但我做到了。只是不知道如何删除线程,因为我得到了答案哦,你不删除线程,所以!这将破坏它的全部功能。@user3553846您不必删除线程。只需投票并接受答案。我已经有一段时间没有做任何SQL了,但我非常确定选择DISTINCT就足以。。。选择不同的值。在您的示例中,您可以删除WHERE子句。到目前为止你都试了些什么?谢谢你。但我做到了。只是不知道如何删除线程,因为我得到了答案哦,你不删除线程,所以!这将破坏它的全部功能。@user3553846您不必删除线程。只需向上投票并接受答案。+1:这应该是一个
groupby
而不是一个
DISTINCT
,因为它使用了聚合函数
COUNT()
。+1:这应该是一个
groupby
而不是一个
DISTINCT
,因为它使用了聚合函数
COUNT()