gpt4 book ai didi

MySQL语法错误: unexpected 'unique'

转载 作者:行者123 更新时间:2023-11-29 11:15:53 29 4
gpt4 key购买 nike

我有以下查询:

select u.UserName, count(*) as total 
from Voting v join User u using (UserID)
where unique (select s.AlbumID, s.Number from Song s where s.AlbumID=v.AlbumID and s.Number=v.Number)
group by u.UserName
order by total desc;

这应该执行以下操作:对于每个用户,显示用户名和用户投票的歌曲数量。如果没有 where unique (...) 行,这可以正常工作,但我希望对同一首歌的投票不被计入为多票,而且我并不是真的确定如何做到这一点,因为该行会产生语法错误(我的教科书说你可以这样做:-))。

架构如下所示:

table Album(AlbumID(PK), AlbumName)

table Song((Number,AlbumID)(PK), SongName)

table User(UserID(PK), UserName)

table Voting((UserID,AlbumID,Number)(PK),Vote,Date)

最佳答案

您需要计算用户投票的相册中的不同数字。为此,还要加入歌曲表。

唯一不清楚的是,您如何知道用户是否对歌曲进行了投票?投票是是/否栏吗?如果是这样,您可能必须更改聚合。

select u.UserName, count(distinct v.Number) as total 
--count(distinct case when v.vote = 'yes' then 1 end) as total
--use this if vote is a yes/no column.
from Voting v
join `User` u on u.userid=v.userid
join Song s on s.AlbumID=v.AlbumID and s.Number=v.Number
group by u.UserName
order by total desc

关于MySQL语法错误: unexpected 'unique' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39774528/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com