是否可以找到COUNT函数,然后只显示某些高于10的值

时间:2018-01-17 09:46:44

标签: mysql mariadb

例如:

@SuppressWarnings("checkstyle:AbbreviationAsWordInName")

这给了我所有与患者一起检查的医生的清单,但是我想只显示检查次数超过10的医生给我的sql添加什么

4 个答案:

答案 0 :(得分:0)

您使用聚合函数作为计数的事实如果您只想要结果超过10 COUNT(checkup.doctor)

您可以使用

过滤结果
SELECT doctor.name,doctor.surname,COUNT(checkup.doctor) 
FROM doctor
INNER JOIN  checkup  doctor.id=checkup.doctor 
GROUP BY doctor.name  
Having  COUNT(checkup.doctor) > 10 
ORDER BY COUNT(checkup.doctor) 

where子句在选择行上工作,所以不知道聚合结果的结果..对于这个SQL,使用过滤选择结果的having子句

答案 1 :(得分:0)

试试这个:您可以使用HAVING子句过滤掉聚合结果并尝试避免过时的连接。 Surname并不代表GROUP BY,因此您使用MAX选择并从GROUP BY中删除或保留原样:

SELECT doctor.name
    , doctor.surname
    , COUNT(checkup.doctor) 
FROM doctor
INNER JOIN checkup ON doctor.id = checkup.doctor 
GROUP BY doctor.name, doctor.surname
HAVING COUNT(checkup.doctor) > 10

答案 2 :(得分:0)

您希望根据聚合结果限制结果行。您可以在<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script> <div id="content"> <h1>My Favorite Flowers</h1> <div class="flowers"> <h2>Hydrangia</h2> <p><i>Hydrangea</i></p> <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/> <p>Sun</p> </div> <div class="flowers"> <h2>Hydrangia</h2> <p><i>Hydrangea</i></p> <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/> <p>Sun</p> </div> <div class="flowers"> <h2>Hydrangia</h2> <p><i>Hydrangea</i></p> <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/> <p>Sun</p> </div> <div class="flowers"> <h2>Hydrangia</h2> <p><i>Hydrangea</i></p> <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/> <p>Sun</p> </div> <div class="flowers"> <h2>Hydrangia</h2> <p><i>Hydrangea</i></p> <img src="https://www.almanac.com/sites/default/files/image_nodes/hydrangea-1715775_640_copy.jpg"/> <p>Sun</p> </div> </div>子句中执行此操作。

关于您的查询:什么是HAVING?每个医生都有一个独特的名字?否则更好地按ID分组 - 只有这样才能使此查询根据SQL标准有效。然后你使用我们在20世纪90年代停止使用的连接语法。请使用正确的ANSI连接。

我喜欢在加入之前聚合,但这只是个人偏好:

name

您也可以使用

select d.name, d.surname, c.checkups
from doctor
join 
(
  select doctor as doctor_id, count(*) as checkups
  from checkup 
  group by doctor
  having count(*) > 10
) c on c.doctor_id = d.id
order by d.id;

答案 3 :(得分:-1)

我认为这对你有用:

NodeUnderMemoryPressure
  • 首先,使用子查询来获取每位医生的检查次数。
  • 其次,从子查询结果中选择记录结果的记录&gt; 10。
  • 然后,加入他们。