【发布时间】:2019-03-29 07:48:41
【问题描述】:
希望有人可以帮助我解决这个 mysql 示例:
hash, version, action
a1..., A, pageview
a2..., A, pageview
a2..., B, pageview
a2..., X, lead
a3..., A, pageview
a3..., B, pageview
a4..., A, pageview
a4..., X, lead
a5..., B, pageview
a6..., A, pageview
a6..., X, lead
如何用一个语句回答以下问题?
- 列出所有具有 version = A 行(仅!)和另一行 action=lead 的哈希
- 列出具有 version = B 行(仅!)和另一行 action=lead 的所有哈希
- 列出所有具有版本 A 的操作、具有版本 B 的另一行和具有 action=lead 的行的所有哈希
我用 select distinct 和 group by have 尝试了如下几个语句,但没有成功
SELECT *, count(hash) as count
FROM it_track
GROUP BY hash, action
having count > 1
and action like 'lead';
非常感谢!
一月。
【问题讨论】:
-
使用正确的
GROUP BY。GROUP BY和SELECT *是一个大红旗。事实上,它甚至不会为大多数 dbms 运行。