【发布时间】:2014-07-28 13:52:33
【问题描述】:
我有这个问题
select s.emp_no, min(s.from_date)
from
**start** (select s.emp_no
from salaries s, employees e
where s.to_date=(select max(to_date) from salaries) and s.emp_no=e.emp_no
group by s.salary DESC
LIMIt 10) **end** as emps, salaries s
where emps.emp_no=s.emp_no
group by s.emp_no;
start - end 部分是正确的。如您所见,它只有一个包含员工编号的字段。 emp_no 是表薪水的外键。表薪水有 2 个字段。 emp_no 和 from_date。每个 emp_no 可能有多个 from_date 值。我想将每个 emp_no 的所有行从工资中分组,并保留 date_value 中的最小值。这显示了更正的结果(我想),但改变了在 start - end 部分创建的行的顺序。关于保持订单的任何想法?
【问题讨论】:
-
您可能需要添加样本和所需的结果,但如果您需要特定的订单,您也需要在外部查询中订购。对有序子查询的结果执行的任何无序外部查询都可能将结果重新排列为伪随机顺序。
-
那么,如何保持外部的顺序与内部的顺序一致?
-
要回答这个问题,您需要添加一些示例数据和所需的结果,目前还不清楚您希望如何按照原始结果进行分组。
标签: mysql sql mysql-workbench