Что я хотел бы сделать, это выбрать одну запись за уникальную метку времени в пределах заданного диапазона дат из моей таблицы. Если для одной и той же временной метки существует несколько записей, я хочу получить максимальную ненулевую запись или возвращать только нулевые записи. Я просто хочу вернуть одну из этих записей с нулевым значением. Запрос я использую «почти» работы, которыйSQL Выберите запись с MAX ненулевым значением. Если в противном случае существует запись с нулевым значением
select timestamp, MAX(value) FROM myTable WHERE *conditions*... group by [timestamp] Order By [timestamp] ASC;
Это, очевидно, работает хорошо, пока возвращаемые записи не являются нулями и отрицательные числа, в этом случае она возвращает нулевой записи, так как это больше, чем отрицательные записи. В этом случае я хотел бы вернуть одну из записей отрицательного значения, а не нулевую запись. Если я пытаюсь решить, что, изменив где заявление
WHERE [Value] <> 0
тогда я вообще ничего не получится, если будут возвращены только нулевое значение записи. Мой приоритет возвращает единственную великую запись, отличную от нуля, за каждую метку времени, но если существуют только нулевые записи, просто верните один из них, и если для метки времени существует только нулевые записи, я бы хотел, чтобы возвращалась одна нулевая запись.
Если вы только ожидали 1 запись назад ... почему заказ по timstamp вообще? Просто выберите timestamp, значение из таблицы, где * conditions * order by value desc limit 1' max value будет первой записью из-за 'order by value desc', а предел 1 обеспечит возврат только 1 записи. независимо от того, есть ли значение 0 или 1. теперь, если нет никакой записи вообще из-за «Где условия», это совсем другая история ... но вы говорите, что записи возвращаются ...Поскольку у вас теперь есть это, максимальное значение, которое вы возвращаете, может не иметь никакого отношения к отметке времени, указанной в нем рядом с ... – xQbert
Я хочу только 1 запись за уникальную метку времени, но мой запрос может вернуть сотни уникальных записей с меткой времени. Например, когда я запрашиваю 90 дней из нашей ежедневной таблицы данных, я ожидаю получить 90 записей. –