Переделать запрос с MS SQL на MySQL
Формулировка задачи:
Здравствуй всяк вошедший.
Нужно переделать запрос MS SQL на MySQL.
Подробные условия задачи:
Выбрать все строки с разными значениями столбца
Поможет кто?
ориентируясь только на условия
Выбрать все строки с разными значениями столбца
Остальное сам допилю.
select
top(1) with ties
c.StationId,
c.DeviceNumber,
c.ArchiveType,
d.TimeValue
from
Channels c join Data d
on c.id = d.channelId
where
c.StationID in (1502)
and d.TimeValue between '20160101 16:58' and '20160203 17:04'
and c.ArchiveType = 1
order by row_number()over(partition by convert(char(13),d.timeValue,126) order by d.timeValue);
Неужели никто не знает как?
Можно переделать запрос попроще:
SELECT TOP(1) WITH TIES * FROM T ORDER BY ROW_NUMBER()OVER(PARTITION BY CONVERT(CHAR(13),[time],126) ORDER BY [time]);
Решение задачи: «Переделать запрос с MS SQL на MySQL»
textual
Листинг программы
SELECT * FROM `testdate` GROUP BY FLOOR(UNIX_TIMESTAMP(`time`)/3600);
Объяснение кода листинга программы
В данном коде выполняется запрос на выборку данных из таблицы testdate, затем результаты группируются по времени, определенному как целочисленное значение, полученное путем деления UNIX_TIMESTAMP на 3600.
SELECT * FROMtestdateGROUP BY FLOOR(UNIX_TIMESTAMP(time)/3600);*означает, что выбираются все столбцы из таблицыtestdatetestdate- название таблицы, из которой производится выборкаGROUP BY FLOOR(UNIX_TIMESTAMP(time)/3600);группирует результаты по времени, определенному как целочисленное значение, полученное путем деления UNIX_TIMESTAMP на 3600.FLOOR(UNIX_TIMESTAMP(time)/3600);преобразует время в целочисленное значение, полученное путем деления UNIX_TIMESTAMP на 3600.