我在表格中有几行,其中有患者被病毒感染的日期以及她被治愈的日期。我在列中还有病毒ID(这是一个外键),并指向另一个表,该表存储了病毒的名称。 到目前为止,我想出了什么:
SELECT myColumns
FROM myTable
WHERE dateColumn BETWEEN '2018-01-01' AND '2018-12-31';
日期列的日期存储方式如下:
patient infected date
2002-01-22 13:25:41
patient healed date
2002-01-24 10:35:21
我想做的是,说出100种最常见的病毒,这些病毒在同年被感染并得到了治愈。
类似(按出现次数排序)
virus1 | name of the virus | number of occurrences
virus2 | name of the virus | number of occurrences
上面的查询应如何变成?
包含患者数据以及病毒ID的表:
Column Type Comment
dateInfected datetime NULL
dateHealed datetime NULL
idOfVirus bigint(20) NULL
具有病毒名称的表:
Column Type Comment
id bigint(20)
virusName text NULL
答案 0 :(得分:0)
您可以按病毒ID加入表,查找出现的次数,按次数排序并应用所需的限制(假设根据您的问题为100) 您可以使用
SELECT V.id as "Virus Id", V.virusName as "Virus Name", count(V.id) as "occurences"
FROM virus V,infect I
WHERE V.id = I.idOfVirus
GROUP BY V.id, V.virusName
ORDER BY count(V.id) DESC
LIMIT 100