我想拥有一个与PostgreSQL等效的Sql Server distinct on ()
a b
----
1 1
1 2
2 2
2 1
3 3
select distinct on (a) *
from my_table
a b
----
1 1
2 2
3 3
我可以在SQL Server中执行以下操作:
select a, min(b) -- or max it does not matter
from my_table
group by a
但是,在有许多列并且查询是临时查询的情况下,这样做非常繁琐。有一个简单的方法吗?
您可以尝试ROW_NUMBER
,但它可能会影响您的性能。
;WITH CTE AS
(
SELECT *, ROW_NUMBER() OVER(PARTITION BY a ORDER BY b) Corr
FROM my_table
)
SELECT *
FROM CTE
WHERE Corr = 1
问题内容: 我有一张桌子,我想将每个ID与连接的字段值连接成一行。 例如,在我的表格中,我有以下内容: 我想输出: 在MySQL中,我能够使用聚合函数,但是在这里似乎不起作用… PostgreSQL是否具有等效功能,或者还有另一种方法可以实现此目的? 问题答案: 这可能是一个很好的起点(仅限8.4+版本): array_agg返回一个数组,但是您可以根据需要对其进行文本转换和编辑(请参见下面的说明
问题内容: 有什么方法可以获取文档中所有对象的集合? 对于Elements来说效果很好,但是s不是Elements。 更新: 我意识到这可以通过遍历DOM来完成-如以下建议所示。我知道如何编写一个DOM- walker函数来查看文档中的每个节点。我希望有某种浏览器本机的方法可以做到这一点。毕竟,我可以通过一个内置调用获得所有s,但不是全部s 有点奇怪。 问题答案: 更新 : 我已经概述了这6种方法
问题内容: 我有一个Oracle 11g XE数据库,并且有一个查询结果集: 我想在逗号分隔的同一行中获得所有相关类别的不同ID,像这样 我以前使用过Postgres,并在那里提供了帮助。如何在Oracle 11g XE中获得相同的结果? 问题答案: 除非您在存储过程中使用它来将输出另存为数组(或集合),否则使用的查询应该足够并提供相同的输出。 在oracle中,我们没有像这样的简单转换函数。但是
问题内容: 在C#中寻找与此方法相同的方法 问题答案: 在C#中超级简单:
问题内容: 我正在寻找Linux上的等效工具。 目前,我正在使用Python的,它大概会调用。我担心的是,如果时钟混乱,例如NTP,返回的时间(UNIX纪元)可能会发生不规则的变化。一个简单的过程或系统挂墙时间,仅以恒定的速率正增加就足够了。 在C或Python中是否存在任何此类时间函数? 问题答案: 您可以在C中使用CLOCK_MONOTONIC,例如:
问题内容: 基本上,我希望每10毫秒调用一次函数。 如何在Java中实现? 问题答案: 您可能想看看Timer。