首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询以获取每个EmpCode的任意2 EmpGroup

查询以获取每个EmpCode的任意2 EmpGroup
EN

Stack Overflow用户
提问于 2013-01-02 08:42:51
回答 4查看 213关注 0票数 1

需要编写SQL查询

为每一个EmpCodeEmpGroup获取city = del的任意2个city = del

  • EmpCode是唯一的
  • 1 EmpCode只能有1 EmpGroup
  • 1 EmpGroup可以有多个EmpCodes

Table:EMP_CITY

代码语言:javascript
复制
EmpCode  EmpGroup   City
1         A          del
2         A          del
3         B          del
4         B          del
5         C          del
6         C          del
7         A          ban
8         A          del

输出

代码语言:javascript
复制
EmpGroup: A
    1
    2
EmpGroup: B
    3
    4
EmpGroup: C
    5
    6
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-02 09:11:42

尝试这个查询

代码语言:javascript
复制
SET @level = 0;
SET @group = '';

SELECT 
EmpCode,EGroup
FROM (
    SELECT 
        City,
        EmpCode,
        EmpGroup,
        @level := IF(@group = EmpGroup, @level+1, 1) AS level, 
        @group := EmpGroup as EGroup 
    FROM test
    ORDER BY EmpGroup 
) rs
WHERE level < 3 

输出输出

代码语言:javascript
复制
EMPCODE     EGROUP
1           A
2           A
3           B
4           B
5           C
6           C

这是sqlfiddle 演示

票数 1
EN

Stack Overflow用户

发布于 2013-01-02 08:49:30

  1. 您必须获得整个结果集,然后从每个emp组打印2个结果。 按EmpCode,EmpGroup,城市从EMP_CITY顺序选择EmpGroup
  2. 您可以在应用程序中获取EmpGroup;然后对每个Emp组运行不同的查询。只有当每个emp组有许多雇员时,这将比#1更快;这样,单个查询的额外开销就会被返回的总体行数减少所抵消。 从EmpGroup EMP_CITY ORDER中选择EmpGroup select,从EMP_CITY选择城市EmpGroup =?限制2 ?是各种emp组
票数 0
EN

Stack Overflow用户

发布于 2013-01-02 09:11:50

如果可用的话使用顶部

代码语言:javascript
复制
SELECT TOP 2 EMPCODE FROM EMPLIST WHERE EMPGROUP=A

如果它不可用,那就试试这个

代码语言:javascript
复制
SELECT EMPCODE FROM EMPLIST WHERE EMPGROUP=A LIMIT 2

对于甲骨文来说,试试这个

代码语言:javascript
复制
SELECT EMPCODE FROM EMPLIST WHERE EMPGROUP=A and ROWNUM<3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14119070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档