当前位置: 首页 > 知识库问答 >
问题:

从计算总和的表中选择具有最大值的行

盛浩阔
2023-03-14

我试图找出如何从我用这个脚本做的表中提取Suma列上具有最高值的行:

SELECT specializare, 
       Count(codprocedura) AS NrProceduri, 
       Sum(pret)           AS Suma 
FROM   (SELECT p.pret                AS Pret, 
               fp.specializaredoctor AS Specializare, 
               fp.codprocedura       AS CodProcedura 
        FROM   proceduri p 
               INNER JOIN fisepacienti fp 
                       ON fp.codpacienti = p.codproc)intermediar 
GROUP  BY intermediar.specializare 

可以使用以下方法创建DB表:

创建表Pacienti(CodP int not null主键、Nume varchar(50)、Prenume varchar(50)、Descriere varchar(50)、Varsta int、DataNasterii varchar(50)

);

创建表Proceduri(CodProc int not null主键,Nume varchar(50),描述varchar(50),Pret int

);

创建表FisePacienti(PRIMARY KEY(CodPacienti, CodProcedura), CodPacienti int FOREIGN KEY REFERENCES Pacienti(CodP), CodProcedura int FOREIGN KEY REFERENCES Proceduri(CodProc), Data varchar(50), NumeDr varchar(50), PrenumeDr varchar(50),专业医生varchar(50), VechimeDr varchar(50)

);

共有1个答案

尹俊雅
2023-03-14

您可以使用TOP(1)with TIES

SELECT TOP (1) WITH TIES fp.specializare, 
       Count(fp.codprocedura) AS NrProceduri, 
       Sum(p.pret) AS Suma
FROM proceduri p JOIN
     fisepacienti fp 
     ON fp.codpacienti = p.codproc
GROUP BY fp.specializare 
ORDER BY SumA DESC;

请注意,聚合不需要子查询。

 类似资料:
  • 在oracle DB中检索具有大组最大值的行时遇到问题。 我的桌子看起来是这样的: id,col1,col2,col3,col4,col5,date_col 谢谢你的提示! 干杯

  • 问题内容: 如果要从整个表中选择最小值和最大值,则可以使用以下方法: 但是,如何仅从表的一部分中选择最小值和最大值?例如,我在一个表中有30行。我想从前十行中选择最小值和最大值,然后从后十行中选择,然后形成最后的10行。 我已经尝试过类似的东西 但这没有用。 如何用最少的查询解决此问题? 问题答案: 此外,MySQL具有一项很酷的功能,可让您返回任意范围的行(例如,返回10-20行)。这对于显示记

  • 问题内容: 我有一张表: 我需要选择具有最大更新值的id和val。因此,对于此表,结果应为: 问题答案: 这需要在与主表连接的子查询中进行汇总。

  • 问题内容: 我已经看到了很多解决此类问题的解决方案尤其是此SQL仅选择在Column上具有Max Value的行,但是似乎没有一个合适的解决方案: 我有以下表格布局,即附件的版本控制,这些附件绑定到实体: 输出应该是最大版本号,按group_id和Entity_id分组,如果有帮助,我只需要一个单个entity_id的列表即可: 我想出的是这种自我加入: 但是,只有在不同的实体不共享相同的组号的情

  • 问题内容: 我试图一次从一张桌子上得到2行。上周的最小日期时间(今天-7)和最晚的日期(今天)的一个。 我的桌子: 我可以通过以下方式选择上周的数据: 但我只想要第1行和第125行,因为这些是用于计算的行。所以我的问题是: 如何从上一个查询的结果中选择2行(带有MIN和MAX日期)? 问题答案: 您可以使用此: 编辑: 由于两台计算机完全有可能具有相同的值,因此应更新查询以在子句中也包含过滤器。我

  • 问题内容: 我有以下查询: 它按预期工作并返回正确的计数。但是现在当我执行以下查询时,我得到了不正确的计数: 为什么第一个查询得到正确的计数而第二个查询却没有? 问题答案: 由于消除了重复的值,因此如果两个计数恰好相同,则将消除一个,并且只对一个求和。尝试改用。