Я хочу получить максимальное значение столбца для первых 1000 не нулевых результатов для некоторого условия. Затем, когда на следующие 1000 и т. Д. Я делаю это для разных условий, но здесь я нашел что-то странное, когда я использую dayofweek. Первая команда, которую я показываю вам:где предложение производит странный результат
mysql> select max(id),max(d20) from (select id, d20 from data where d20 is not null and id<1000000 and dayofweek(day)=1 limit 1000) x;
+---------+----------+
| max(id) | max(d20) |
+---------+----------+
| 100281 | 13785 |
+---------+----------+
1 row in set (0.44 sec)
, но на самом деле я хочу эту вторую команду, которая не работает должным образом.
mysql> select max(id),max(d20) from (select id, d20 from data where d20 is not null and id>100000 and dayofweek(day)=1 limit 1000) x;
+---------+----------+
| max(id) | max(d20) |
+---------+----------+
| 303765 | 0 |
+---------+----------+
1 row in set (0.02 sec)
Любой ключ?
Без соответствующего предложения 'ORDER BY',« first »и« next »означают бессмысленные слова. Таблицы не имеют встроенного порядка. –
Что ж, строки с идентификатором> 100000 действительно имеют значение d20 больше 0? Кроме того, ... Damien был быстрее ... – fancyPants
Вы просто получаете max (id) и max (d20) из индетерминированного образца из 1000 строк, соответствующих критериям. Из этих 1000 никто не имеет d20> 0 –