У меня есть таблица под названием suburb_temperature, которая в основном содержит название пригорода, дату и температуру следующим образом.DB-MYSQL Справка по запросу для выбора где в
CREATE TABLE `test`.`suburb_temperature` (
`idsuburb_temperature` INT NOT NULL AUTO_INCREMENT,
`suburb_name` VARCHAR(100) NOT NULL,
`time_value` DATETIME NOT NULL,
`degrees` DOUBLE NOT NULL,
PRIMARY KEY (`idsuburb_temperature`),
INDEX `suburb_temperature_idx1` (`suburb_name` ASC, `time_value` ASC, `degrees` ASC));
Затем я вставил некоторые данные в эту таблицу.
INSERT INTO `test`.`suburb_temperature` (`suburb_name`, `time_value`, `degrees`) VALUES ('SYDNEY', '2015-06-16', '11.5');
INSERT INTO `test`.`suburb_temperature` (`suburb_name`, `time_value`, `degrees`) VALUES ('SYDNEY', '2015-06-17', '12.5');
INSERT INTO `test`.`suburb_temperature` (`suburb_name`, `time_value`, `degrees`) VALUES ('ULTIMO', '2015-06-16', '11');
INSERT INTO `test`.`suburb_temperature` (`suburb_name`, `time_value`, `degrees`) VALUES ('ULTIMO', '2015-06-17', '11.9');
INSERT INTO `test`.`suburb_temperature` (`suburb_name`, `time_value`, `degrees`) VALUES ('PYRMONT', '2015-06-16', '12.4');
INSERT INTO `test`.`suburb_temperature` (`suburb_name`, `time_value`, `degrees`) VALUES ('PYRMONT', '2015-06-17', '12.8');
INSERT INTO `test`.`suburb_temperature` (`suburb_name`, `time_value`, `degrees`) VALUES ('RIVERWOOD', '2015-06-16', '13.1');
INSERT INTO `test`.`suburb_temperature` (`suburb_name`, `time_value`, `degrees`) VALUES ('RIVERWOOD', '2015-06-17', '12.7');
То, что я хотел бы найти, - это средняя температура в пригороде, минимальная температура и максимальная температура.
Я создал запрос, ниже которого выполняется, хотя проблема заключается в том, что результаты не возвращаются для пригородов, которые не существуют в таблице. E.G В запросе ниже я ввел HAYMARKET в качестве названия пригорода, которого не существует. Никакие результаты не возвращаются с названием пригорода HAYMARKET. Мне нужно увидеть HAYMARKET с нулем для min, max и average в результатах возврата. Кто-нибудь знает, как это можно добиться эффективно?
SELECT suburb_name,
IFNULL(ROUND(avg(suburb_temperature.degrees),2),0) as 'SUBURB_AVG_TEMP_DEGREES_CELCIUS',
IFNULL(ROUND(min(suburb_temperature.degrees),2),0) as 'SUBURB_MIN_TEMP_DEGREES_CELCIUS',
IFNULL(ROUND(max(suburb_temperature.degrees),2),0) as 'SUBURB_MAX_TEMP_DEGREES_CELCIUS'
FROM suburb_temperature
WHERE suburb_name IN('HAYMARET','PYRMONT','RIVERWOOD','SYDNEY','ULTIMO')
GROUP BY suburb_name
ORDER BY suburb_name asc
Результаты для вышеупомянутого запроса являются:
Я добавил комментарий к своему ответу, пожалуйста, следуйте этим шагам. Ваша проблема будет решена. –