我正在尝试从表中获取总记录数,并使用以下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):ORDER BY子句的表达式1不在GROUP BY子句中,并且包含未聚合的列“rentown.info.signup\u date”
在功能上不依赖于GROUP BY子句中的列;
这与sql_mode=only_full_group_by不兼容。[SELECT COUNT()
作为cnt FROM
info
其中1组由FROM_UNIXTIME(注册日期,'%Y-%m-%d')按注册日期顺序描述]
这是我的表格格式:
+ 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