我有一个庞大的数据库,其中某个查询大约需要 7 秒才能返回结果,因为每个查询在其他计算中都会进行多次计数。为了加快速度,我想创建一个已经计算和存储这些计数的新查找表。
我知道我可以很容易地编写一个程序来填充表格,但我想知道是否有一种方法可以在没有外部处理的情况下生成相同的结果集。
例如,结果集来自:
SELECT DISTINCT city, state FROM lkp_city_state AS locations;
现在,对于这些城市/州组合中的每一个,我想计算其中的法拉利和兰博基尼的数量。类似的东西
SELECT COUNT(*) as num_ferarris FROM cars WHERE manufacturer = 'ferarri' AND city = locations.city AND state = locations.state
JOIN
SELECT COUNT(*) as num_lambos FROM cars WHERE manufacturer = 'lamborghini' AND city = locations.city AND state = locations.state`
理想的结果集列将类似于:
city | state | num_ferarris | num_lambos
这可能吗?