我该如何解决这个问题?我的查询都没有,我已经尝试过了。
我必须返回两位医生的详细信息,他们下令进行最多的分析,包括他们订购的分析数量。句子的最后一部分真的让我发疯了。
为了合作,我有两张桌子:
conn.CreateTable<table_sessions>();
和
using (var conn = sql.conn())
{
conn.Insert(new table_sessions()
{
sessionid = someVariable,
created = DateTime.Now,
});
}
我试过了:
identifier ::= (letter|"_") (letter | digit | "_")*
letter ::= lowercase | uppercase
lowercase ::= "a"..."z"
uppercase ::= "A"..."Z"
digit ::= "0"..."9"
那:
class Node:
...
def _get_child_candidates(self, ...):
...
那:
mysql> select * from DOCTORES;
+-----------+---------------------------+--------------+-----------+
| DNI_DOC | NOMBRE_DOC | ESPECIALIDAD | TELEFONO |
+-----------+---------------------------+--------------+-----------+
| 22888444O | MATEO DÍAZ, RAMÓN | 3 | 659876457 |
| 22909456Y | HERAS PRADO, ANTONIA | 1 | 676234598 |
| 23456398F | GÓMEZ DAVID, ADRIÁN | 1 | 646768454 |
| 25349857H | BURGOS CASA, CANDY | 2 | 659758476 |
| 55776898K | RAMÓN CORONADO,LUIS | 3 | 654364736 |
| 78988484B | CONRADO ALONSO, JOSE | 2 | 645878745 |
| 88647389P | DOMÍNGUEZ GÓMEZ, MANUEL | 1 | 623787343 |
+-----------+---------------------------+--------------+-----------+
当你说这是一个简单的查询时,你甚至无法想象这是多么令人沮丧...为什么对我来说这不简单是一个谜(假设我真的不是假人)。
预期输出将是这样的:
mysql> select * from PETICIONES;
+--------+------------+--------+-----------+-----------+
| ID_PET | FECHA_PET | ID_ANA | DNI_PAC | DNI_DOC |
+--------+------------+--------+-----------+-----------+
| 1 | 2008-01-03 | 2 | 71515623A | 23456398F |
| 2 | 2008-05-10 | 2 | 33788976F | 55776898K |
| 3 | 2008-05-08 | 3 | 79876867X | 23456398F |
| 4 | 2008-05-11 | 4 | 44787345H | 55776898K |
| 5 | 2008-05-12 | 2 | 19887234W | 25349857H |
| 6 | 2008-05-05 | 4 | 22897576R | 55776898K |
| 7 | 2008-03-15 | 5 | 44787345H | 88647389P |
| 8 | 2008-03-19 | 1 | 71515623A | 23456398F |
| 9 | 2008-03-26 | 2 | 71515623A | 78988484B |
| 10 | 2008-03-15 | 2 | 19887234W | 88647389P |
| 11 | 2008-03-15 | 3 | 33788976F | 55776898K |
| 12 | 2008-03-26 | 2 | 44787345H | 23456398F |
+--------+------------+--------+-----------+-----------+
答案 0 :(得分:2)
我相信你严重过于复杂。加入DNI_DOC字段上的2个表,按医生的ID和名称(以及您可能希望包含在选择列表中的任何其他详细信息)进行分组,并计算不同ID_ANA的数量。
SELECT d.DNI_DOC, d.NOMBRE_DOC, COUNT(distinct ID_ANA) AS count
FROM DOCTORES d
INNER JOIN PETICIONES t ON d.DNI_DOC=t.DNI_DOC
GROUP BY d.DNI_DOC, d.NOMBRE_DOC
ORDER BY COUNT(distinct ID_ANA) DESC
LIMIT 2
如果您需要每位医生的peticiones总数,请将其与计数区分开来。
答案 1 :(得分:1)
以下是我要做的事情:
select d.*, count(p.ID_PET) as TOTAL_PETICIONES from DOCTORES d
inner join PETICIONES p on p.DNI_DOC = d.DNI_DOC
group by d.DNI_DOC
order by count(ID_ANA) DESC
limit 2
这是没有经过测试并写在这里所以请纠正我的拼写错误;) 使用连接将提供良好的输出。由DOCTORES分组,以便能够计算每个DOCTIORES的PETICIONES
编辑:类似的东西。输出不会很好,因为我有理解列内容的问题。