3

たとえば、「従業員」テーブルに男性と女性の割合をリストしたい場合。これは正しいですか?

SELECT Sex, COUNT (Sex) AS [%]
FROM Employees
GROUP BY Sex;

そして、50% 未満の性別をリストしたい場合はどうすればよいでしょうか? 以下は正しいですか?

SELECT Sex, COUNT (Sex) AS [%]
FROM Employees
GROUP BY Sex
HAVING COUNT (Sex) < 50%

ありがとうございました。

4

2 に答える 2

2

これがあなたが探しているものだと思います。

SELECT Sex, (Count(Sex)* 100 / (SELECT Count(*) FROM Employees)) as MyPercentage
FROM Employees
GROUP BY Sex

それからあなたはすることができます

HAVING MyPercentage < 50
于 2013-05-14T17:00:56.227 に答える
1

いいえ。ほとんどのバージョンの SQL はウィンドウ関数をサポートしています。以下を使用してパーセンテージを計算できます。

SELECT Sex, COUNT(Sex)/(sum(count(sex)) over ()) AS [%]
FROM Employees
GROUP BY Sex;

( 100*0 から 100 の間のパーセンテージが必要なのか、0 から 1 の間の確率が必要なのかわからないため、 は省略しています。)

一部のバージョンの SQL は整数除算を行います。その場合、これを 10 進数または浮動小数点数に変換する必要があります。

SELECT Sex, cast(COUNT(Sex) as float)/(sum(count(sex)) over ()) AS [%]
FROM Employees
GROUP BY Sex;
于 2013-05-14T17:00:24.317 に答える