会員数(患者数)が最大の保険会社を探す。
それがデータベースであり、近づくための私の最初の試みです:
http://sqlfiddle.com/#!3/4b2ed/27
SELECT P.cid AS cid, COUNT ( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
最大 countp を取得するにはどうすればよいですか?
会員数(患者数)が最大の保険会社を探す。
それがデータベースであり、近づくための私の最初の試みです:
http://sqlfiddle.com/#!3/4b2ed/27
SELECT P.cid AS cid, COUNT ( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
最大 countp を取得するにはどうすればよいですか?
患者数の降順で結果を並べ替え、最初のレコードのみを取得します。
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
ORDER BY CountP DESC
LIMIT 1
複数の保険会社がその最大数のメンバーを持っている可能性があり、それらすべてを取得したい場合は、サブクエリを使用する必要があります。
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
HAVING CountP = (
SELECT COUNT(pid) AS c
FROM Patient
GROUP BY cid
ORDER BY c DESC
LIMIT 1
);
を使用できない、コメントで説明した奇妙な状況ではLIMIT
、次のことができます。
SELECT P.cid AS cid, COUNT( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
HAVING CountP = (SELECT MAX(d.c) FROM (
SELECT COUNT(pid) AS c
FROM Patient
GROUP BY cid
) AS d);
以下を試してください:
max(count(P.pid))
SELECT P.cid, COUNT ( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
compute max(count(p.pid))
うわー - たくさんの制約。どうぞ:
SELECT MAX(CountP) FROM (
SELECT P.cid, COUNT ( P.pid ) AS CountP
FROM Patient P
GROUP BY P.cid
) winner