0

私はtablewith 3を持っていてcolumns、次のように見えます

branchid  semesterid  courseid
 4          25           2        
 4          36           5
 4          23           3
 4          12           10 
 4          34           15
 4          2            7
 4          23           42

 7          23           9
 7          10           6
 7          34           3
 7          20           17

そのブランチの semesterid と courseid の数が必要です

SELECT branchid, count(semesterid), count(courseid) WHERE branchid = 4

このクエリを実行すると、count(semesterid) に間違ったカウントが表示され、courseid に正しいカウントの 7 が表示されます

4

3 に答える 3

1

私の水晶玉では、代わりにこれが必要になると予測しています。

SELECT COUNT(DISTINCT semesterid), 
       COUNT(DISTINCT courseid) 
  FROM Table1 
 WHERE branchid = 4;

...表示されているクエリは、レコード数をカウントするのに問題なく機能するはずです(ただし、一意のレコードはカウントされません)。

于 2012-09-13T13:41:47.533 に答える
0

一意の結果の数が必要な場合は、count(id)count(distinct id)に置き換える必要があります

于 2012-09-13T13:43:46.223 に答える
0

試す:

SELECT branchid, 
       count(distinct semesterid) as semesterid, 
       count(distinct courseid) as courseid
FROM   <table>
WHERE  branchid = 4
group by branchid
于 2012-09-13T13:41:49.257 に答える