我试图找出如何从我用这个脚本做的表中提取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)
);
您可以使用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日期)? 问题答案: 您可以使用此: 编辑: 由于两台计算机完全有可能具有相同的值,因此应更新查询以在子句中也包含过滤器。我
问题内容: 我有以下查询: 它按预期工作并返回正确的计数。但是现在当我执行以下查询时,我得到了不正确的计数: 为什么第一个查询得到正确的计数而第二个查询却没有? 问题答案: 由于消除了重复的值,因此如果两个计数恰好相同,则将消除一个,并且只对一个求和。尝试改用。