我尝试从特定类型中获取最多类型的条目。为了清楚起见,我将从示例开始。我的列类型实际上是一个外键。
例子:
我的计数器表(~ 1.500.000 行),它计算了所有在不同红绿灯处看到的汽车:
id, datetime, type, traffic_light_id
0, '09:59', 'red ford', 2
1, '10:00', 'black bmw', 1
2, '10:11', 'red ford', 1
3, '10:30', 'yellow ford', 1
4, '11:01', 'black bmw', 1
5, '11:09', 'red ford', 1
6, '11:18', 'green mercedes', 1
7, '11:20', 'black bmw', 2
8, '11:44', 'white renault', 2
9, '11:44', 'red renault', 1
我在每一列都有一个索引。id 是主键。
需要:
所以我想得到的是“black bmw”的结果,traffic_light_id = 1。结果应该总结所有之前和之后看到的“黑色宝马”类型的汽车。
结果应该是:
count, type, traffic_light_id
2, 'red ford', 1
1, 'yellow ford', 1
我的坏解决方案:
因此,到目前为止,我的解决方案是遍历计数器中 type = 'black bmw' 和 traffic_light_id = 1 的所有计数。
对于每个计数,我都会在我的 php 脚本中获得带有 traffic_light_id 的 bevore 和 after seen 元素(对每个计数另外进行两个查询)。
之后,我按数组中给定的汽车类型对结果进行分组并计算它们的频率。
对于这样的事情有更好的解决方案吗?最好的事情是只有一个 sql 查询!