BigQuery - select 个具有最大函数的值
BiqQuery - select values with max function
我有这种 table(仅举个例子.. 在我的例子中,这个 table 有超过 60000 条记录)
我想知道如何制作 select 以获得更高评分的 movieId(或 songId)的性别评分?
我是这样查询的:
select * from
(
SELECT avg(rating)as rating, movieID,'M' as gender FROM [OF7.TEST]
where gender = 'M'
group by movieID
) ,
(
SELECT avg(rating)as rating, movieID,'F' as gender FROM [OF7.TEST]
where gender = 'F'
group by movieID
)
order by movieId
并获得这个结果之王:
问题是:
性别之间的评级是否存在差异,这
性别评分较高的电影,这种差异是否显着?
- 有没有办法修改查询以仅获取某些 songId/movieId 和性别的最大(速率)?
谢谢
我以前从未使用过 bigquery,但像这样的东西应该有用:
SELECT movieID,
CASE
WHEN F_rate >= M_rate THEN F_rate
ELSE M_rate
END max_rating,
CASE
WHEN F_rate > M_rate THEN 'Females Rated it Higher'
WHEN F_rate < M_rate THEN 'Males Rated it Higher'
ELSE 'Rated Equal'
END AS who_rated_it_higher,
ABS(F_rate - M_rate) --absolute value of difference
FROM
(
SELECT movieID,
AVG(CASE WHEN gender = 'F' THEN rating END) AS F_rate,
AVG(CASE WHEN gender = 'M' THEN rating END) AS M_rate
FROM CTE
GROUP BY MovieID
) AS A
如果您有任何疑问或需要任何其他信息,请告诉我。
我有这种 table(仅举个例子.. 在我的例子中,这个 table 有超过 60000 条记录)
我想知道如何制作 select 以获得更高评分的 movieId(或 songId)的性别评分?
我是这样查询的:
select * from
(
SELECT avg(rating)as rating, movieID,'M' as gender FROM [OF7.TEST]
where gender = 'M'
group by movieID
) ,
(
SELECT avg(rating)as rating, movieID,'F' as gender FROM [OF7.TEST]
where gender = 'F'
group by movieID
)
order by movieId
并获得这个结果之王:
问题是: 性别之间的评级是否存在差异,这 性别评分较高的电影,这种差异是否显着?
- 有没有办法修改查询以仅获取某些 songId/movieId 和性别的最大(速率)?
谢谢
我以前从未使用过 bigquery,但像这样的东西应该有用:
SELECT movieID,
CASE
WHEN F_rate >= M_rate THEN F_rate
ELSE M_rate
END max_rating,
CASE
WHEN F_rate > M_rate THEN 'Females Rated it Higher'
WHEN F_rate < M_rate THEN 'Males Rated it Higher'
ELSE 'Rated Equal'
END AS who_rated_it_higher,
ABS(F_rate - M_rate) --absolute value of difference
FROM
(
SELECT movieID,
AVG(CASE WHEN gender = 'F' THEN rating END) AS F_rate,
AVG(CASE WHEN gender = 'M' THEN rating END) AS M_rate
FROM CTE
GROUP BY MovieID
) AS A
如果您有任何疑问或需要任何其他信息,请告诉我。