Mysql 从MS Sql中的表中选择一组不同的值
我的数据库中有一个表,它位于MSSQL中,具有以下结构Mysql 从MS Sql中的表中选择一组不同的值,mysql,Mysql,我的数据库中有一个表,它位于MSSQL中,具有以下结构 DayID Sequence Cities Title Hotels ---------------------------------------------------------------- 1 1 Manali Day1 Hotel A 2 2
DayID Sequence Cities Title Hotels
----------------------------------------------------------------
1 1 Manali Day1 Hotel A
2 2 Manali Day2 Hotel B
3 2 Delhi Day3 Hotel C
4 3 Delhi Day4 Hotel D
5 3 Manali Day5 Hotel E
6 4 Manali Day6 Hotel F
现在我需要的结果如下
Cities
------
Manali
Delhi
Manali.
我使用了城市分组,但它只提供了两个城市
Manali
Delhi
但我需要以下输出
Manali
Delhi
Manali
请建议
提前感谢。根据需要,您可以分组 如:
根据您可以按城市分组的要求,从表中选择城市 如: 从表中按城市分组选择城市尝试以下操作:
SELECT Cities
FROM (
SELECT Cities, DayID,
ROW_NUMBER() OVER (ORDER BY DayID) -
ROW_NUMBER() OVER (PARTITION BY Cities ORDER BY DayID) AS grp
FROM mytable) AS t
GROUP BY Cities, grp
ORDER BY MIN(DayID)
计算字段grp
标识具有相同城市值的连续记录孤岛。在GROUP BY
子句中使用此字段,我们可以提取所需的城市
值序列
注意:上述查询在SQL Server中工作。尝试以下操作:
SELECT Cities
FROM (
SELECT Cities, DayID,
ROW_NUMBER() OVER (ORDER BY DayID) -
ROW_NUMBER() OVER (PARTITION BY Cities ORDER BY DayID) AS grp
FROM mytable) AS t
GROUP BY Cities, grp
ORDER BY MIN(DayID)
计算字段grp
标识具有相同城市值的连续记录孤岛。在GROUP BY
子句中使用此字段,我们可以提取所需的城市
值序列
注意:上述查询在SQL Server中工作。首先确保表已排序,以便我们可以在数据步骤中使用“按”选项:
proc sort data=tablename;
by sequence cities;
run;
在数据步骤中,使用“by”子句选择每个组和输出的第一行。仅“保留”用户要求的城市
data desired;
keep cities;
set tablename;
by sequence cities;
if first.cities then output;
run;
首先确保表格已排序,以便我们可以在数据步骤中使用“按”选项:
proc sort data=tablename;
by sequence cities;
run;
在数据步骤中,使用“by”子句选择每个组和输出的第一行。仅“保留”用户要求的城市
data desired;
keep cities;
set tablename;
by sequence cities;
if first.cities then output;
run;
当你谈论MSSQL时,为什么这个标签是MySQL?当你谈论MSSQL时,为什么这个标签是MySQL?这将返回德里的玛纳利。不是玛纳利,德里,玛纳利蒂斯将返回德里的玛纳利。不是玛纳利,德里,玛纳利。我想你在这里遗漏了DayID后面的逗号:选择城市,DayID
@giorgosbetos,非常感谢,先生。我想您在DayID之后漏掉了逗号:选择城市,DayID
@GiorgosBetsos,非常感谢,先生。您能在您的答案周围添加一些上下文来解释这是什么吗?好了:)您能在您的答案周围添加一些上下文来解释这是什么吗?好了:)