0

私は MySQL の初心者であり、Oracle のバックグラウンドを持っています。テーブル内のタイプの合計数とパーセンテージを計算する SQL クエリがあります。

例えば:

SELECT type,count(*) count_by_type ,a.tot total, (COUNT(*)*100/a.total) percent 
FROM xyz
JOIN (select count(*) tot from xyz)a
GROUP by type
HAVING type = 'abc';

このクエリは自己結合を行っています。同じことを達成するためのより簡単な方法はありますか?

4

2 に答える 2

0

SELF JOINこことHAVING句を使用する必要はありません。次のように試してください:

SELECT COUNT(1) INTO @var_total FROM xyz;

SELECT type, count(1) AS count_by_type,
        @var_total total,
        (COUNT(1)*100/@var_total) AS percent
FROM xyz a
WHERE type = 'abc';
GROUP by type;
于 2012-07-31T04:30:28.143 に答える
0
SELECT type,count(1) count_by_type ,(select count(1) from xyz) total,
(count_by_type*100/total) percent  FROM xyz WHERE type = 'abc'; 
于 2012-07-31T04:33:26.667 に答える