任何人都可以帮助我如何在不使用count的情况下编写此查询? "一些导演导演不止一部电影。对于所有此类导演,请返回他们指导的所有电影的标题以及导演姓名。按导演名称排序,然后按电影标题排序。(不含COUNT。)
mID | title | director
--------------------------------------
101 |Gone with the Wind |Victor Fleming
102 |Star Wars |George Lucas
103 |The Sound of Music |Robert Wise
104 |E.T. |Steven Spielberg
105 |Titanic |James Cameron
106 |Snow White |<null>
107 |Avatar |James Cameron
108 |Raiders of the Lost Ark |Steven Spielberg
答案 0 :(得分:3)
您可以比较每个导演中间的最小值和最大值。 如果它们不同 - 超过1个。
Select mid, title, director
From tbl
where director in (Select director
From tbl
Group by director
Having max(mid) > min (mid))
order by director, title
答案 1 :(得分:1)
您可以使用var obj = {
foo: 29,
bar: 42
};
var arr = Array.from(Object.keys(obj), k=>obj[k]);
和CTE或子查询。不使用ROW_NUMBER()
是非常愚蠢的。这是这种聚合的理想情况。
COUNT()
答案 2 :(得分:1)
这个怎么样?
select t.*
from t join
(select director, sum(1) as cnt
from t
group by director
) d
on t.director = d.director
where cnt > 1
order by director, title;