Привет, у меня проблемы с сортировкой данных изображений по месяцам, я бы хотел сказать, сколько изображений было создано, обновлено и удалено за определенный месяц, получив подсчет и группировку по месяцам.У меня есть две таблицы с данными изображения. В обеих таблицах есть столбцы «createAt», «updatedAt» и «deleteAt», поэтому я сделал форматирование даты в столбцах обеих таблиц и объединил их, чтобы все данные были вместе, но явозникли проблемы с подсчетом данных.Вот что у меня есть:
SELECT DATE_FORMAT(`createdAt`, "%M %Y"), DATE_FORMAT(`updatedAt`, "%M %Y"), DATE_FORMAT(`deletedAt`, "%M %Y") FROM harvest_sample_images UNION SELECT DATE_FORMAT(`createdAt`, "%M %Y"), DATE_FORMAT(`updatedAt`, "%M %Y"), DATE_FORMAT(`deletedAt`, "%M %Y") FROM plant_sample_images
Любая помощь будет признательна.
SELECT DATE_FORMAT(`createdAt`, "%M %Y") DAT, count(*) AS `created`,
(SELECT DATE_FORMAT(`updatedAt`, "%M %Y") DAT, COUNT(*)) AS `updated`,
(SELECT DATE_FORMAT(`deletedAt`, "%M %Y") DAT COUNT(*)) AS `deleted`
FROM (SELECT `createdAt`, `updatedAt`, `deletedAt` FROM harvest_sample_images UNION SELECT `createdAt`, `updatedAt`, `deletedAt` FROM plant_sample_images)
GROUP BY DATE_FORMAT(`created`, "M% %Y")
Я попробовал это сейчас.
Так что я мог бынашел другой способ сортировки информации об изображениях по каждому соответствующему месяцу с подсчетом, а также отображения месяца, в который он попадает.
SELECT DATE_FORMAT(`timestamp_date`, "%M %Y") AS `Month`,
(SELECT COUNT(*) FROM (SELECT `createdAt` FROM harvest_sample_images UNION ALL SELECT `createdAt` FROM plant_sample_images) AS `images_created` WHERE DATE_FORMAT(images_created.`createdAt`, "%m %y") = DATE_FORMAT(`timestamp_date`, "%m %y")) AS `Created`,
(SELECT COUNT(*) FROM (SELECT `updatedAt` FROM harvest_sample_images UNION ALL SELECT `updatedAt` FROM plant_sample_images) AS `images_updated` WHERE DATE_FORMAT(images_updated.`updatedAt`, "%m %y") = DATE_FORMAT(`timestamp_date`, "%m %y")) AS `Updated`,
(SELECT COUNT(*) FROM (SELECT `deletedAt` FROM harvest_sample_images UNION ALL SELECT `deletedAt` FROM plant_sample_images) As `images_deleted` WHERE DATE_FORMAT(images_deleted.`deletedAt`, "%m %y") = DATE_FORMAT(`timestamp_date`, "%m %y")) AS `Deleted`
FROM table_dates
Итак, я сейчас создал другую таблицу ссписок дат от начала данных до настоящего времени.Затем я перебираю данные и проверяю, совпадает ли отформатированная дата table_dates с отформатированной датой объединения даты в двух таблицах изображений.Я могу получить счет и добавить его в качестве столбца в новой таблице.Мысли ценятся