Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 每个‘取一个结果;在’;sql中的语句_Mysql_Sql_Sql Server - Fatal编程技术网

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安装还没有更新到足够新的版本来支持此功能。