mysql - 如何将 MySQL 的 `group by` 与已在 select 调用中用 `replace` 修改的列一起使用?

标签 mysql grouping

我有用户表(简化):

id | username | url 

我正在尝试查找具有相同域名的用户数量,因此我通过 replaceurl 列中删除 http 文本mysql 函数调用和 group by 剥离的值,但它不起作用。

我正在尝试运行以下查询:

SELECT replace(url, "http://", "") u, count(u) c
FROM users
GROUP BY u
ORDER BY c DESC

我收到错误:

Unknown column 'u' in 'field list'

有什么想法如何在列上运行replace并仍然按替换值进行分组吗?

最佳答案

您不能在 selectwhere 子句中使用别名。

It is not allowable to refer to a column alias in a WHERE clause, because the column value might not yet be determined when the WHERE clause is executed.

使用

select replace(url, "http://", "") u, count(*) c

关于mysql - 如何将 MySQL 的 `group by` 与已在 select 调用中用 `replace` 修改的列一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26799025/

相关文章:

C# LINQ - Union() Group()-results

Javascript:在插入 Google 表格之前按月而不是按天对 csv 数据进行分组

mysql - 在 mySQL 中选择不同三元组的补集

php - 使用内部连接连接 mysql 更新中的字段名称

php - 选择比当前日期早 x 天的记录

r - 如何通过分组合并行并仅保留R中的最高值

java - 使用 Java 8 流对集合进行分组和排序

python - 系数分组 : coefficient equation from a longer expression

mysql 存储过程无法在 mysqlworkbench 或 java 代码中运行

即使相关行不存在,MySQL 也会进行 JOIN 吗?