![](/img/trans.png)
[英]How to write a SQL query that will Count two types of values in the Same Column of one Table?
[英]How to write a query that joins same table in sql and compares the column values of one table with same column in another table
编写一个查询来检查流量不一致。 不一致是指访问(url、uid、dt、src、rev)涉及用户 uid 从未访问过的源页面 src。 返回访问的key(url、uid、dt)。
这是我正在使用的表:
访问表的主键是url、uid、dt。
访问:
网址 | dt | 用户界面 | 源文件 | 转 |
---|---|---|---|---|
A02 | 05/18/2003 | 一种 | A05 | 20 |
A03 | 05/19/2003 | 乙 | A01 | 15 |
A01 | 2004 年 5 月 20 日 | 乙 | A02 | 10 |
我希望它返回这些结果:
网址 | dt | 用户界面 | 源文件 | 转 |
---|---|---|---|---|
A02 | 05/18/2003 | 一种 | A05 | 20 |
A01 | 05/20/2004 | 乙 | A02 | 10 |
这是因为作为 A02 源的 A05 从未被 uid 访问过。 A03 访问不会被返回,因为源之前被 B 访问过。
我将如何编写返回此内容的查询?
首先,我确实尝试在 src 和 url 上通过 self Join 将两个 Visit 表连接在一起:
Select distinct V1.url, V1.uid
FROM Visit V1, Visit V2
WHERE V1.src = V2.url
但我不确定从这里去哪里。 我知道可能需要那个组。
NOT EXISTS
有助于查找这些记录。
SELECT *
FROM Visit a
WHERE NOT EXISTS (
SELECT 1
FROM Visit b
WHERE b.url = a.src
AND b.uid = a.uid
)
我来自同一个班级,只是想说我认为他希望我们只返回 URL、uid 和 dt。 因此,如果您将 SELECT * 更改为 SELECT asdlkfj;lasjdflk 无论什么 tf,您都应该是金色的......除非我误解了哈哈
另外,我们是否也应该制作 select 语句 DISTINCT 或者rr nah?
嘿,我来自同一个班级,只是想说我认为他希望我们只返回 URL、uid 和 dt。 因此,如果您将 SELECT * 更改为 SELECT asdlkfj;lasjdflk 无论什么 tf,您都应该是金色的......除非我误解了哈哈
另外,我们是否也应该制作 select 语句 DISTINCT 或者rr nah?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.