在这个查询中,我指定我想要返回哪些车型(硬编码)。因此,下面的SQL语句将为每个车型返回一条记录:
SELECT
*
FROM
main
WHERE
(
(marka_name = 'SUBARU' AND model_name = 'IMPREZA' AND (kuzov = 'GC8' OR kuzov = 'GF8')) OR
(marka_name = 'MAZDA' AND model_name = 'RX-7' AND kuzov = 'FD3S') OR
(marka_name = 'MITSUBISHI' AND model_name = 'LANCER' AND (kuzov = 'CN9A' OR kuzov = 'CP9A')) OR
(marka_name = 'NISSAN' AND model_name = 'SKYLINE' AND (kuzov = 'ER34' OR kuzov = 'BCNR33')) OR
(marka_name = 'NISSAN' AND model_name = 'SILVIA' AND kuzov = 'S14') OR
(marka_name = 'TOYOTA' AND model_name = 'CELICA' AND kuzov = 'ST205') OR
(marka_name = 'TOYOTA' AND model_name = 'ARISTO' AND kuzov = 'JZS161') OR
(marka_name = 'MITSUBISHI' AND model_name = 'DELICA' AND (kuzov = 'PE8W' OR kuzov = 'PD8W' OR kuzov = 'PF8W'))
)
AND
(rate != 'RA' AND rate != 'RR' AND rate != 'A1' AND rate != 'A' AND rate != 'R' AND rate >= '3')
AND
(mileage >= 0 AND mileage <= 150000)
AND
(year >= 1990 AND year <= 1998)
GROUP BY
model_name
ORDER BY
mileage ASC,
rate DESC
现在的问题是,在没有使用联合操作的情况下,如何通过某个字段返回多个指定模型。例如:
GROUP BY
model_name
HAVING COUNT(model_name) = 2
ORDER BY
mileage ASC,
rate DESC
我知道使用HAVING COUNT并没有意义,但是我需要一种方法来指定每个型号要返回多少辆汽车。 http://sqlfiddle.com/#!2/421e4/1/0