【问题标题】:how to get the max() value from a count() on sql? [duplicate]如何从 sql 的 count() 中获取 max() 值? [复制]
【发布时间】:2014-07-05 13:53:55
【问题描述】:

我有以下表格: 访问:vid、pid、日期 患者:pid、pname、年龄、性别。 我想要的是通过使用计数和最大功能让患者进行更多访问。 我用这个查询进行了计数:

选择 Patient.pname,将 (Visits.pid) 计数为 PatientVisits 从 ( 患者内部连接访问 在 Patient.pid = Visits.pid) 按 Patient.pname 分组

所以我的输出显示了患者的姓名和每位患者的就诊次数。

那么我怎样才能得到最大值呢? ps:我用的是sql server

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    SELECT 返回一个表,因此使用嵌套调用从该表中选择具有最大值的行。

    SELECT DISTINCT pname, 
           COUNT(vid) AS PatientVisits 
    FROM Visits 
    JOIN Patients ON Visits.pid = Patients.pid
    GROUP BY Visits.pid 
    HAVING COUNT(vid) = (
        SELECT MAX(y.x) 
        FROM (
           SELECT COUNT(vid) AS x 
           FROM Visits 
           GROUP BY pid) AS y
    );
    

    基本上,我们使用一个 SELECT 来获取 GROUPED BY*patient 的访问次数,然后将其嵌套在第二个 SELECT 中以获得最大访问次数,然后将其嵌套在第三个 SELECT 中以查找具有该数字的患者访问次数。

    【讨论】:

    • 哇,看起来棒极了!但什么是“计数”?我刚刚在 sql 上输入了这个,我得到了 Max(Counts.pid) 上的错误,说列名无效。并且在查询结束时(“AS Counts”)出现另一个错误:没有为“Counts”的第二列指定列...
    • “AS Counts”部分与“AS PatientVisits”重命名列的方式完全相同,只是它重命名了结果表。我在其中一个在线 SQL 测验中测试了该调用,并将其修改为可以在这里使用,但看起来我在转换中犯了一个错误。 :(
    • 也许这行得通? SELECT Counts.pname, MAX(Counts.pid) FROM (SELECT Patient.pname AS pname, COUNT(Visits.pid) AS pid FROM (Patient INNER JOIN Visits ON Patient.pid = Visits.pid) GROUP BY Patient.pname) AS计数;
    • 但在您键入:Counts.pname 时,它​​是否也引用了列名?还是病人的名字?
    • Counts.pname 指的是 Counts 表的 pname 列,即使 Counts 表直到调用中的“稍后”才存在。这些是等效的:“SELECT table.column FROM table”和“SELECT x.column FROM table AS x”
    【解决方案2】:

    据我了解您的问题 - 您想要访问次数最多的前 1 位患者,这应该给您

    select top 1 Patient.pname, count (Visits.pid) as PatientsVisits 
    from Patient inner join Visits on Patient.pid = Visits.pid 
    group by Patient.pname
    order by count(Visits.pid) desc
    

    【讨论】:

    • 是的,谢谢 attila,它有效!!!但我也用 MAX 功能来做,所以我不知道该怎么做:/
    猜你喜欢
    • 2019-04-20
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 2016-08-05
    • 1970-01-01
    • 2017-06-10
    相关资源
    最近更新 更多