基于两列的所有组合检索数据的有效方法是什么?

脆皮甜甜圈

我在这里处理一个看似复杂的问题。不幸的是,我不是SQL方面的专家,因此我无法确定此问题的有效而通用的解决方案。

为了添加一些上下文,我正在使用MySQL表中的车辆崩溃数据。碰撞表具有以下属性:ID,日期时间,发生的状态以及事故发生时汽车的天气和位置。天气和位置是数字值,相应的描述在单独的表中给出。

由于某些格式问题,我刚刚拍摄了我正在使用的示例表的屏幕截图。

崩溃数据表

崩溃数据表

天气说明表

天气说明表

崩溃位置说明表

崩溃位置说明表

我想获取每种天气和汽车位置组合所导致的撞车事故数量。例如,如果有8个天气条件和8个坠机地点,那么我希望通过天气和地点组合以及该组合的死亡人数获得64个结果。

组合可能性

组合可能性

目前,我已尝试按顺序执行此操作,但速度太慢。这是我目前正在使用的查询:

SELECT locationDescriptionTable.type as Location, 
       weatherDescirptionTable.type as AtmCond, 
       count( c.casenum ) as Cases 

FROM state AS stateTable, 
     data_all AS crashDataTable, 
     nm_location AS locationDescriptionTable, 
     atm_cond AS weatherDescirptionTable 

WHERE crashDataTable.statenum = stateTable.id AND 
      crashDataTable.nmlocat = locationDescriptionTable.id AND 
      crashDataTable.atmcond = weatherDescirptionTable.id AND 
      locationDescriptionTable.id ="crashLocationName" AND 
      weatherDescirptionTable.id ="weatherConditionName"

我已经考虑了很多,使用JOINS或VIEWS将其分为不同的查询。但是我没有运气。任何帮助是极大的赞赏!

另外,我正在与user:srr一起使用,因此该帐户也可能会有回复。

苏迪普

请尝试以下查询。您可能需要根据需要更改表和列的名称。内部查询将从您的位置和天气表中获取所有可能的组合,如果未找到匹配的Weather_ID和Location_ID,则左侧的Crash Data表联接将为您提供Crash Data表中列的空值。然后,您可以将其分组,并得到有零个空值和没有空个数的总和。

create table Weather(Weather_ID int, Type varchar(50));
create table Location(Location_ID int, Type varchar(50));
create table CrashData(Case_ID int, Weather_ID int, location_ID int);

insert into Weather(Weather_ID, Type)
values(1, 'Clear'), (2, 'Cloudy');

insert into Location(Location_ID, Type)
values(1, 'Intersection'), (2, 'Parking Lot');

insert into CrashData(Case_ID, Weather_ID, Location_ID)
values(1, 1, 1), (2, 1, 2), (3, 2, 1), (4, 2, 1);

SELECT Weather, Location, Sum(CASE WHEN Case_ID IS NULL THEN 0 ELSE 1 END)  Number_Of_Cases
FROM (SELECT Weather.Weather_ID, Weather.Type Weather,
        Location.Location_ID, Location.Type Location
    FROM Weather, Location) Temp 
LEFT OUTER JOIN CrashData
ON Temp.Weather_ID=CrashData.Weather_ID
    AND Temp.Location_ID=CrashData.Location_ID
GROUP BY Weather, Location
ORDER BY Weather, Location

http://sqlfiddle.com/#!2/89693b/3/0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL:从RBAC数据库检索所有权限的最有效方法是什么?

来自分类常见问题

创建两个熊猫数据框列的字典的最有效方法是什么?

来自分类Dev

汇总名称以模式开头的所有列的最有效方法是什么?

来自分类Dev

同步熊猫中两个大数据帧的最有效方法是什么?

来自分类Dev

在有向图中确定两个节点的所有公共祖先的有效方法是什么?

来自分类Dev

在R中删除数据表中空列的最有效方法是什么

来自分类Dev

更正列中文本类型数据的最有效方法是什么?

来自分类Dev

查找列表中两个元素的所有组合的最有效方法

来自分类Dev

将最高有效设置位以下的所有位归零的最有效方法是什么?

来自分类常见问题

在ElasticSearch中检索所有_id的有效方法

来自分类Dev

在ElasticSearch中检索所有_id的有效方法

来自分类Dev

隔离特定列中具有相同值的数据框行的有效方法是什么?

来自分类Dev

组合多个y = mx + b方程的最有效方法是什么?

来自分类Dev

从包含多个已排序运行的文件中检索行的最有效方法是什么

来自分类Dev

从包含多个已排序运行的文件中检索行的最有效方法是什么

来自分类Dev

按日期和/或月份和/或年份检索记录的最有效方法是什么?

来自分类Dev

删除/终止Apache Pulsar主题中的所有消息的最有效方法是什么?

来自分类Dev

从SQL查询中排除所有结果的有效方法是什么?

来自分类Dev

从Elasticsearch获得所有结果的最有效方法是什么?

来自分类Dev

总结前几年所有观察结果的最有效方法是什么

来自分类Dev

基于2d数组填充3d数组的有效方法是什么?

来自分类Dev

检索 JSON 数据的有效方法/正确方法

来自分类Dev

在iOS中显示具有多列的表的最有效方法是什么?

来自分类Dev

在CUDA中交换两个寄存器变量的有效方法是什么?

来自分类Dev

检查两个java对象的Deep Equal的最快,最有效的方法是什么?

来自分类Dev

Gremlin:找到两个顶点之间的边的有效方法是什么?

来自分类Dev

同步两个datagridview的最有效方法是什么?

来自分类Dev

计算两个集合(Java)之间的交点的最有效方法是什么?

来自分类Dev

检查两个物体是否碰撞并减速的最有效方法是什么?

Related 相关文章

  1. 1

    MySQL:从RBAC数据库检索所有权限的最有效方法是什么?

  2. 2

    创建两个熊猫数据框列的字典的最有效方法是什么?

  3. 3

    汇总名称以模式开头的所有列的最有效方法是什么?

  4. 4

    同步熊猫中两个大数据帧的最有效方法是什么?

  5. 5

    在有向图中确定两个节点的所有公共祖先的有效方法是什么?

  6. 6

    在R中删除数据表中空列的最有效方法是什么

  7. 7

    更正列中文本类型数据的最有效方法是什么?

  8. 8

    查找列表中两个元素的所有组合的最有效方法

  9. 9

    将最高有效设置位以下的所有位归零的最有效方法是什么?

  10. 10

    在ElasticSearch中检索所有_id的有效方法

  11. 11

    在ElasticSearch中检索所有_id的有效方法

  12. 12

    隔离特定列中具有相同值的数据框行的有效方法是什么?

  13. 13

    组合多个y = mx + b方程的最有效方法是什么?

  14. 14

    从包含多个已排序运行的文件中检索行的最有效方法是什么

  15. 15

    从包含多个已排序运行的文件中检索行的最有效方法是什么

  16. 16

    按日期和/或月份和/或年份检索记录的最有效方法是什么?

  17. 17

    删除/终止Apache Pulsar主题中的所有消息的最有效方法是什么?

  18. 18

    从SQL查询中排除所有结果的有效方法是什么?

  19. 19

    从Elasticsearch获得所有结果的最有效方法是什么?

  20. 20

    总结前几年所有观察结果的最有效方法是什么

  21. 21

    基于2d数组填充3d数组的有效方法是什么?

  22. 22

    检索 JSON 数据的有效方法/正确方法

  23. 23

    在iOS中显示具有多列的表的最有效方法是什么?

  24. 24

    在CUDA中交换两个寄存器变量的有效方法是什么?

  25. 25

    检查两个java对象的Deep Equal的最快,最有效的方法是什么?

  26. 26

    Gremlin:找到两个顶点之间的边的有效方法是什么?

  27. 27

    同步两个datagridview的最有效方法是什么?

  28. 28

    计算两个集合(Java)之间的交点的最有效方法是什么?

  29. 29

    检查两个物体是否碰撞并减速的最有效方法是什么?

热门标签

归档