繁体   English   中英

获取一行SQL

Getting one row sql

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有下表

Id          Stack
------------------
1             a
1             b
2             c
2             d

我想得到下表的结果。

Id          Stack
------------------
1             a
2             c

我使用DISTINCT,但是它不起作用怎么办? 使用group by有什么解决方案吗?

4 个回复
CREATE table sampletb(id int, stack varchar(10));

INSERT into sampletb values(1,'a');
INSERT into sampletb values(1,'b');
INSERT into sampletb values(2,'c');
INSERT into sampletb values(2,'d');

SELECT * FROM sampletb;

id          stack
----------- ----------
1           a
1           b
2           c
2           d


SELECT id,
       stack,
       row_number() over (partition by id order by stack) as row_number
from   sampletb;

该查询将为您提供这样的结果。

id          stack      row_number
----------- ---------- --------------------
1           a          1
1           b          2
2           c          1
2           d          2

现在将上述查询作为子查询,并获取具有row_number=1的列,将提供所需的期望输出。

select id,stack from 
       (
       SELECT id,
              stack,
              row_number() over (partition by id order by stack) as row_number 
       FROM   sampletb) x
where  x.row_number=1;

id          stack
----------- ----------
1           a
2           c
select id,stack from (
select id , stack  , row_number() over (partition by id order by stack) as rn
) k where rn=1

我不确定您需要应用确切的逻辑,但这将返回您发布的结果:

SELECT  ID, MIN(Stack) AS Stack
FROM    T
GROUP BY ID

如果您的DBMS允许使用ROW_NUMBER函数,则可以使用更高级的逻辑(问题中未标记)

SELECT  ID, Stack
FROM    (   SELECT  ID,
                    Stack,
                    ROW_NUMBER() OVER(PARTITION BY ID ORDER BY Stack) AS RowNumber
            FROM    T
        ) t
WHERE   RowNumber = 1

这应该有帮助

select Id, min(Stack) from <TABLE_NAME>
group by Id
1 如何从SQL一行一行地获取数据

我将提供商品的条形码,然后将商品数据提取到datagridview中。 这些代码仅提取一行,如果再次填充条形码,则此代码更新行不会更新新行。 我想新排 ...

2 SQL获取唯一行

我有一张桌子,如下。 我正在尝试提取如下的唯一记录。 我是否可以知道如何提取上面的查询? ...

3 从上一行/下一行SQL获取值

我有3个字段的表。 即 我想通过一个查询(无论有多少个子查询)但使用普通SQL(没有数据透视,CTE等)来实现...如果可能的话,将获得相同的结果:上一行中每一行的placeid的transferdate行或到下一行,以便我可以使用它们进行一些计算。 我的意思是 : 我已经使 ...

5 PL / SQL使用函数获取每一行的结果

我刚刚编写了一个函数,用于根据平均颜色与输入颜色来获得图像的分数。 这样做的目的是让我可以根据图像的得分与输入颜色的相关性对图像进行排序。 该函数如下所示: 现在,我希望能够通过一个查询评估所有图像的得分,并将它们从最相关到​​最不相关的列表返回,但是在实现此查询的逻辑时,我似乎 ...

6 SQL获取不同枚举值的最后一行

我有一个带有一个“类型”列的表,这个列是一个有八种可能性的枚举。 我现在想查询每个枚举值的最后一行 - 所以如果我要查找八个可能值中的四个,我想要每个枚举的四行。 有任何想法吗? 编辑示例:以下枚举:type =(“example1”,“ex2”,“ex3”)每一行都有一个类型和一 ...

2017-04-13 17:34:37 1 130   mysql/ sql
7 如何获取唯一行以及sql中的计数?

在加入另外两个表后,我得到如下视图,并且记录也是唯一的: 原来的 通过使用以下查询: 现在我试图从上面的视图中获得独特的记录,这应该给我这样的东西。 唯一的区别是ColF现在应该计数为 2,因为这是唯一记录的计数。 期望输出 所以我尝试这样做,但它给了我包含大量数据的重复记录。 现在 ...

8 仅从SQL查询获取第一行

您好,我在使用以下查询获取前1行时遇到了麻烦。 它在oracle,plsql中。 我是oracle的新手,在上面的查询中,由于数据的缘故,我得到了重复-我需要根据Assoc.edit_dt获取第一条记录。 我可以通过Assoc.edit_dt对记录进行排序,但是当我在Join内使 ...

10 PHP和SQL获取某一行

您好我刚刚开始并且对HTML没有太多差错,但几乎没有关于PHP的任何内容,我创建了一个基本的PHP代码来从我的sql数据库中获取数据,但是限制为前3个并回显它们。 然而,我真的希望能够以不同的顺序将它们放在花哨的看起来div中,所以说div 2中的第1行第2行中的第1行等等。我知道如何基于唯一 ...

2016-06-01 19:44:35 0 33   php/ sql
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM