本文介绍了获得一组的第一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为每个GV(TeacherID)获取第一行

I want to get the first row for every GV(TeacherID)

GV |   Class|  SUM
GV1|   L001 |  5000
GV1|   L002 |  5000
GV1|   L003 |  5000
GV2|   L002 |  7000
GV2|   L003 |  7000
GV2|   L001 |  7000
GV3|   L001 |  8000
GV3|   L002 |  8000
GV3|   L003 |  8000

救救我.

推荐答案

好的,现在您对问题进行了编辑,以使该答案看起来完全不相关...帮助您入门.干杯.

ok, now you've edited the question such that this answer looks completely irrelevant...sigh...I'll leave it in case it helps you get started. Cheers.

根据您的规格,最简单的解决方案:

The simplest solution given your specs:

  select teacherid
    from mytable
group by teacherid;

如果除了teacherid之外还需要其他信息:

If you need other information in addition to the teacherid:

  select teacherid, ...other cols...
    from (select teacherid, ...other cols...
                 row_number() over (
                     partition by teacherid
                     order by classid /* or class as per edit */) as row_num
            from mytable) my_derived_table
   where my_derived_table.row_num = 1;

告白者:我没有方便进行测试的SQL-Server安装,因此语法可能并不完全正确.但很近.

Caveat emptor: I don't have an installation of SQL-Server handy to test on, so syntax may not be exactly correct; but it's close.

这篇关于获得一组的第一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 23:29