sql - SQL 中的替换和分组依据

标签 sql

您好,我想按已替换字符但保留原始值的字段对结果进行分组。

这就是我所拥有的,但我需要返回原始 URL 值而不更改结果。

select Count(ID) as TotalClicks, Replace(URL, '/', '') as DistinctURL
  from email_click_throughs
 where emailid = @ID
group by  Replace(URL, '/', '')
order by TotalClicks desc

最佳答案

这会给你所描述的内容,但它使“Replace(URL...”上的分组变得多余,所以我可能会误解:

select Count(ID) as TotalClicks, URL as DistinctURL
from email_click_throughs
where emailid = @ID
group by Replace(URL, '/', ''), URL
order by TotalClicks desc

如果您只想返回一个 URL,即使在删除“/”后两个 URL 相等,您也可以执行类似的操作

select Count(ID) as TotalClicks, Max(URL) as DistinctURL 
from email_click_throughs 
where emailid = @ID group by Replace(URL, '/', '') 
order by TotalClicks desc

但是您无法控制哪些“匹配项”会被丢弃。

关于sql - SQL 中的替换和分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3313783/

相关文章:

sql - Postgresql 复制树表内的数据

php - 回显 sql 行作为页面 url

sql - 返回年份数组作为年份范围

sql - 查询数据库设置?

c# - SQL Server - 如何选择每个用户的最新记录?

MySQL 定义数据库列

mysql - 删除记录时 SQL 触发器不起作用

mysql - 如何在 MySQL 表上添加自定义 CHECK 约束?

MySQL 你会怎么做这道题

php - 查询后未创建新的 $_SESSION 变量?