当至少一半的记录被评估为'Y'时选择数据

mpl*_*use 0 sql oracle

我有这张桌子

evaluation([id_member, id_article], opinion)
Run Code Online (Sandbox Code Playgroud)

我尝试选择id_article,而至少有一半的成员为'Y'设置了意见.

例如 :

(1, 1, NULL)
(2, 1, NULL)
(1, 2, NULL)
(2, 2, 'Y')
Run Code Online (Sandbox Code Playgroud)

查询应该选择文章2(对于第二篇文章),因为两行中的一行包含'Y'.

我找不到怎么做!

[]意味着id_memberid_article弥补主键.

Chr*_*sli 5

如果意见是字符串:

SELECT id_article
FROM
Evaluation
GROUP BY id_article
HAVING
AVG(CASE OPINION WHEN 'Y' THEN 1.0 ELSE 0.0 END) >= 0.5
Run Code Online (Sandbox Code Playgroud)

如果意见是十进制(假设0.0或1.0)那么

SELECT id_article
FROM
Evaluation
GROUP BY id_article
HAVING
AVG(Opinion) >= 0.5
Run Code Online (Sandbox Code Playgroud)

如果意见是整数(假设0或1)那么

SELECT id_article
FROM
Evaluation
GROUP BY id_article
HAVING
AVG(Opinion*10) >= 5
Run Code Online (Sandbox Code Playgroud)