Mysql 每个‘取一个结果;在’;sql中的语句
我有一张大桌子,里面有很多唱片。我想为查询中的Mysql 每个‘取一个结果;在’;sql中的语句,mysql,sql,sql-server,Mysql,Sql,Sql Server,我有一张大桌子,里面有很多唱片。我想为查询中的in()中的每个项提取一条记录 例如: select dccid, marketid from market where marketid in ('1','2','3'...) 在表market中,每个marketid都有很多记录,但我只需要每个市场有一条记录 如何执行此操作?您可以使用窗口功能: select m.* from (select m.*, row_number() over (partition by m
in()
中的每个项提取一条记录
例如:
select dccid, marketid from market where marketid in ('1','2','3'...)
在表market
中,每个marketid
都有很多记录,但我只需要每个市场有一条记录
如何执行此操作?您可以使用窗口功能:
select m.*
from (select m.*,
row_number() over (partition by market_id order by market_id) as seqnum
from market m
where market_id in ( . . . )
) m
where seqnum = 1;
您可以通过更改顺序,以获得特定的行—第一行、最后一行,等等
也就是说,我不明白为什么在名为market
的表中有重复的market\u id
s。这似乎应该是主键。您使用的是MySQL还是MS SQL Server?marketid是int还是字符串?您好,欢迎使用stackoverflow。当您说每个where in
子句有许多记录,但您只想要一个日期时,您的意思是需要添加另一个where
子句还是想要最近的日期?“sql”没有回答问题。MySql和Sql Server是两种不同类型的数据库,它们都使用Sql语言,但语言的方言不同,直接说明了这个问题。什么是输入,什么是预期输出?听起来你想生成一个带分隔符的列表???可能是时候使用for 1市场id了。表中有多个dcid,我需要一条记录,每条记录都有dcidmarket@user12338558这就是row\u number()。。。但我们仍然需要知道您使用的是什么数据库,因为GA MySql版本仅在去年才支持此功能,而且许多真正的MySql安装还没有更新到足够新的版本来支持此功能。