Я пытаюсь получить общее количество записей из таблицы и использую следующий запрос MySQL:
SELECT COUNT(*) AS cnt FROM `info` WHERE 1 GROUP BY FROM_UNIXTIME(signup_date, '%Y-%m-%d') ORDER BY signup_date DESC
но это приводит к следующей ошибке:
Ошибка SQL (1055): выражение № 1 предложения ORDER BY отсутствует в предложении GROUP BY и содержит неагрегированный столбец ‘rentown.info.signup_date’
который функционально не зависит от столбцов в предложении GROUP BY;
это несовместимо с sql_mode = only_full_group_by. [SELECT COUNT ()
КАК НЕТ ОТinfo
WHERE 1 GROUP BY FROM_UNIXTIME (дата регистрации,
«% Y-% m-% d») ORDER BY signup_date DESC]
и вот мой формат таблицы:
+ Options
id email signup_date ip city_name firstname address state lastname city zipcode phonenumber current_url creditscore
4 [email protected] 1388525440 108.200.78.136 Philadelphia, PA Kathy 1915 Apex Ave #1/4 California Yeung Los Angeles 90039 310 890 3338 NULL NULL
10 [email protected] 1388884727 98.199.141.66 Dickinson, TX Mackenzie 102 strand Texas Helms Galveston 77550 409 599 8024 NULL NULL
11 [email protected] 1388889053 99.190.210.155 Grand Prairie, TX samathiis 1701 towne crossing blvd #731 Texas ashley mansfield 76063 817 210 NULL NULL
Сообщение об ошибке довольно очевидно. Вы можете заказать только по столбцам, появляющимся в GROUP BY
пункт или совокупности. Для быстрого решения просто закажите по тому же термину, который вы использовали при группировке.
SELECT COUNT(*) AS cnt
FROM `info`
GROUP BY FROM_UNIXTIME(signup_date, '%Y-%m-%d')
ORDER BY FROM_UNIXTIME(signup_date, '%Y-%m-%d') DESC
Для общего количества записей этого должно быть достаточно:
SELECT COUNT (*) AS cnt
FROM 'info'
ORDER BY signup_date DESC