sql - SQL 语句对列计数 49 次而不是一次
问题描述
我创建了一个 SQL 语句来将 LinkId 显示为索引,并计算 LinkId 在表中出现的次数,并以点击为标题并获得百分比。我想从两个表中相同 LinkId 的不同表中添加链接的 URL 以显示,但是当我添加内部连接时,它对每个 LinkId 计数 49 次。为什么我得到 49 而不是 1 的输出,我该如何解决这个问题?
InnerJoin 之前
输入:
SELECT DISTINCT
LinkId [Index],
COUNT(*) OVER (PARTITION BY LinkId) [Clicks],
CONVERT(VARCHAR(10), COUNT(*) OVER (PARTITION BY LinkId) * 100 / COUNT(*) OVER (PARTITION BY 1)) + '%' [Percent]
FROM
Track_Click_7
WHERE
CampaignId = 24896;
输出:
Index | Clicks | Percent
26 | 1 | 50%
37 | 1 | 50%
添加内连接后:
SELECT DISTINCT
Track_Click_7.LinkId [Index],
Campaign.Link,
COUNT(*) OVER (PARTITION BY Track_Click_7.LinkId) [Clicks],
CONVERT(VARCHAR(10), COUNT(*) OVER (PARTITION BY Track_Click_7.LinkId) * 100 / COUNT(*) OVER (PARTITION BY 1)) + '%' [Percent]
FROM
Track_Click_7
INNER JOIN
Campaign ON Track_Click_7.CampaignId = Campaign.CampaignId
WHERE
Track_Click_7.CampaignId = 24896;
输出:
Index | Link | Clicks | Percent
26 | URL.... | 49 | 50%
37 | URL.... | 49 | 50%
期望的输出:
Index | Link | Clicks | Percent
26 | URL.... | 1 | 50%
37 | URL.... | 1 | 50%
解决方案
推荐阅读
- hyperledger-fabric - Hyperledger Fabric 智能合约未在 vs 代码中创建
- python - 为什么我们需要在 TensorFlow 中“分配”?
- mysql - MySQL WHERE IN 和另一个变量相等
- python - 如何在 Keras 中的卷积层之间添加跳跃连接
- angular - Angular 6.x 从路由解析器加载数据到服务在功能模块中没有数据
- linux - 迭代文件中的变量以检查 bash 中的特定值
- java - 从 PriorityQueue 转换为 ArrayList
- php - 带有 OpenSSL 的 PHP 中的 chacha20-poly1305
- c - 从不同的文件(主文件)访问 C 结构成员
- lotus-notes - 附件在笔记文档上显示两次