mysql - "Every derived table must have its own alias"Mysql错误

标签 mysql sql database subquery

我的查询有什么问题:

SELECT minDate, deviceType, COUNT(*)
FROM (SELECT visitorId, deviceType, 
               MIN(sessionDate) as minDate
      FROM sessions
      GROUP BY visitorId)
WHERE minDate > DATE_SUB(NOW(), INTERVAL 14 DAY)
GROUP BY minDate, deviceId

我收到此消息:

Query Error: Error: ER_DERIVED_MUST_HAVE_ALIAS: Every derived table must have its own alias

最佳答案

错误信息已经很清楚了。您必须为子选择生成的派生表添加别名。因此,给它一个别名。

另一个问题是,在子查询中,非聚合列 deviceType 应包含在 GROUP BY 子句中。此更改可能会也可能不会产生您期望的结果:如果没有,那么您需要提供示例数据、预期结果以及对您要实现的目标的解释,以便帮助修复查询。

SELECT minDate, deviceType, COUNT(*)
FROM (
    SELECT visitorId, deviceType, MIN(sessionDate) as minDate
      FROM sessions
      GROUP BY visitorId, deviceType -- all non-aggregated columns in the GROUP BY clause
) t  -- alias here
WHERE minDate > DATE_SUB(NOW(), INTERVAL 14 DAY)
GROUP BY minDate, deviceId

关于mysql - "Every derived table must have its own alias"Mysql错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59400898/

相关文章:

mysql - 使用 MySQL 中的不同 View 从搜索和导出中获取相同的数据?

SQL:棘手的连接

javascript - 使用javascript检索谷歌融合表中的特定单元格

php - jquery加载间隔div flash

mysql基于另一个表更新和插入语句

php - 从每个用户的多个记录中获取最新记录

sql - '! =' and ' <>' postgresql 中的运算符

php - 无法将 Magento 对象数组响应转换为 json 格式

mysql重置root用户权限

ios - 什么是适合与ios一起使用的数据库