2

私は今読んでいる本の中にこの質問があります。私はSQlの初心者です。それを学びます。それは私の宿題ではありません。私は自分で何かを試しているだけです。

Sallyは、EMPテーブルをクエリして、会社に工場がある各都市に住んでいる従業員の数を確認したいと考えています。彼女は次のクエリを記述しましたが、機能しません。クエリの作成方法の何が問題になっていますか?

SELECT city, COUNT(emp_no) as "Number of Customers"
FROM emp
ORDER BY city
GROUP BY city; 

これは、countとgroup Byが使用されている他のクエリを参照して行ったことです...このクエリでもWHERE句も必要だと思います。どうすればよいですか?

SELECT empid,count(*) “Employee Total”, city
From emp
Group by city;

助けてください..ありがとう:)

4

3 に答える 3

2

firstクエリの問題は、句のorder by後に来る必要があるということです。group by

SELECT city, COUNT(emp_no) as "Number of Customers"    FROM emp GROUP BY city Order By city;  

クエリの問題は、secondempidを選択しているが、Group byリストにないことです。

試す

SELECT count(*) Employee Total, city From emp Group by city; 
于 2012-06-07T16:27:23.423 に答える
2

実際、Sallyのクエリで間違っているのは、ORDERBY句を最後に置く必要があるということだけです。

SELECT city, COUNT(emp_no) as "Number of Customers"
FROM emp
GROUP BY city
ORDER BY city;

GROUPBYとORDERBYを切り替えるだけです...

于 2012-06-07T16:29:10.673 に答える
1
SELECT count(*) as "Employee Total", city
From emp
Group by city;

cityでGROUPBY句を使用すると、同じ都市のすべてのレコードがグループ化され、集計関数COUNT(*)は各都市グループの行数をカウントします。

以前に発生した問題は、列選択のempid列でした。GROUP BYを使用している場合は、集計列とGROUPBY句の列のみを選択できます。GROUP BY句にempidを追加すると、クエリは実行されますが、各empidとカウント1が返されるため、探している結果は得られません。

于 2012-06-07T16:24:30.193 に答える