#mysql #sql
#mysql #sql
Вопрос:
Хорошо, итак, у меня есть таблица (MyTable), которая выглядит следующим образом:
value1 | value2 | value3 | value4 | value5 | date
---------------------------------------------------------
1 | 4 | 6 | 25 | 35 | 2011-10-07
---------------------------------------------------------
2 | 3 | 6 | 25 | 14 | 2011-10-01
---------------------------------------------------------
Моя конечная цель — получить один столбец с каждым уникальным номером и последней зарегистрированной датой, например:
combinedValues | date
----------------------------
1 | 2011-10-07
----------------------------
4 | 2011-10-07
----------------------------
6 | 2011-10-07
----------------------------
25 | 2011-10-07
----------------------------
35 | 2011-10-07
----------------------------
2 | 2011-10-01
----------------------------
3 | 2011-10-01
----------------------------
14 | 2011-10-01
----------------------------
До сих пор я заставлял его работать с этим запросом, но только с одним столбцом:
SELECT t.value1, t.date
FROM MyTable t
INNER JOIN (
SELECT value1, MAX( date ) AS LatestDate
FROM MyTable
GROUP BY value1
)tm ON t.value1= tm.value1
AND t.date = tm.LatestDate
GROUP BY value1
ORDER BY date DESC
Итак, как бы мне поступить, чтобы создать таблицу с комбинированными значениями? Возможно ли это вообще?
Комментарии:
1. вы должны предоставить sqlfiddle.com ссылка для такого problem..so это позволяет нам быстро выявлять проблему, а вам быстро получать ответ.
2. пример sqlfiddle : sqlfiddle.com /#!2/96236
3. Ах, спасибо, вы меня опередили. На самом деле не знал, что существует sql fiddle, спасибо!
4. Я задавался вопросом, как узнать, сколько из них четных и нечетных чисел, и придумал эту SQL-скрипку —————
Ответ №1:
Попробуйте этот запрос:
Select val,Max(date) date From
(Select value1 as val,date From MyTable
Union All
Select value2 as val,date From MyTable
Union All
Select value3 as val,date From MyTable
Union All
Select value4 as val,date From MyTable
Union All
Select value5 as val,date From MyTable)tab
Group by val order by date desc,val;
SQL Fiddle
Комментарии:
1. Работает потрясающе, спасибо! Просто пришлось упорядочить по максимуму (date), а не просто по дате, чтобы это работало с моей фактической настройкой db
2. Как бы я начал подсчитывать четные и нечетные числа, т. Е. два столбца с двумя строками, четные и нечетные с их соответствующей суммой / количеством