标签: aggregate-functions

如何在连接查询中显示两列映射到第二个表中的同一列

我有一个表T1,其中包含以下列

T1
----------
ID | Name
----------
1    Sender1
2    Receiver1
3    Receiver2
4    Sender2
Run Code Online (Sandbox Code Playgroud)

表T2

T1
---------------------
SenderID | ReceiverID
---------------------
1          2
1          3
4          2
Run Code Online (Sandbox Code Playgroud)

我想以这样一种方式加入这两个表,我想让发送者和相应的接收者分组.我想要名称而不是ID.如何在一个SQL查询中完成此操作

例如:

发件人接收人

Sender1       receiver1
              receiver2

Sender2       receiver1
Run Code Online (Sandbox Code Playgroud)

sql join group-by aggregate-functions

3
推荐指数
1
解决办法
3300
查看次数

Oracle内置函数元数据

有没有办法获取Oracle内置aggeregate和其他功能等元数据AVG, STDDEV, SQRT,?我需要知道对象id和参数meta.

SYS.ALL_OBJECTS视图中我找不到任何有用的东西.我还试图SYS.ALL_ARGUMENTS通过object_name 在视图中搜索.

是否有内置函数的视图或表格,数据类似于SYS.ALL_OBJECTSSYS.ALL_ARGUMENTS

sql oracle aggregate-functions oracle10g oracle11g

3
推荐指数
1
解决办法
1350
查看次数

在sql中创建一个伪链表

我有一个包含以下列的表

table: route
columns: id, location, order_id
Run Code Online (Sandbox Code Playgroud)

并且它具有诸如的价值

id, location, order_id
1, London, 12
2, Amsterdam, 102
3, Berlin, 90
5, Paris, 19
Run Code Online (Sandbox Code Playgroud)

是否有可能在postgres中执行一个sql select语句,它将返回每一行以及带有下一个最高order_id的id?所以我想要......

id, location, order_id, next_id
1, London, 12, 5
2, Amsterdam, 102, NULL
3, Berlin, 90, 2
5, Paris, 19, 3
Run Code Online (Sandbox Code Playgroud)

谢谢

sql postgresql aggregate-functions

3
推荐指数
1
解决办法
2112
查看次数

Postgres表:无论顺序如何,都可以在两列中查找重复项

我有一个PostgreSQL表描述两点之间的线.它包含两列,A和B,表示点的id的整数(在另一个表中描述).

但是每一行都在表中重复,因为从A到B的行与从B到A的行相同.

我想删除重复项,但我找不到在两列上工作的聚合函数,重新组合AB和BA行然后删除一列.

谢谢 :)

sql postgresql aggregate-functions duplicates

3
推荐指数
1
解决办法
4106
查看次数

查询SQL Server中的最小值比查询所有行要长很多

当我查询表中包含大约一亿行的特定日期的最小ID时,我目前在数据库中遇到了一种奇怪的行为.查询非常简单:

SELECT MIN(Id) FROM Connection WITH(NOLOCK) WHERE DateConnection = '2012-06-26'
Run Code Online (Sandbox Code Playgroud)

这个查询结束了,至少我让它运行了几个小时.DateConnection列不是既不包含在其中的索引.所以我理解这个查询可以持续很长时间.但我尝试了以下几秒钟运行的查询:

SELECT Id FROM Connection WITH(NOLOCK) WHERE DateConnection = '2012-06-26'
Run Code Online (Sandbox Code Playgroud)

它返回300k行.

我的表定义如下:

CREATE TABLE [dbo].[Connection](  
    [Id] [bigint] IDENTITY(1,1) NOT NULL,  
    [DateConnection] [datetime] NOT NULL,  
    [TimeConnection] [time](7) NOT NULL,  
    [Hour]  AS (datepart(hour,[TimeConnection])) PERSISTED NOT NULL,  
    CONSTRAINT [PK_Connection] PRIMARY KEY CLUSTERED   
    (  
        [Hour] ASC,  
        [Id] ASC  
    )  
)
Run Code Online (Sandbox Code Playgroud)

它有以下索引:

CREATE UNIQUE NONCLUSTERED INDEX [IX_Connection_Id] ON [dbo].[Connection]  
(  
    [Id] ASC  
)ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我发现使用这种奇怪行为的一个解决方案是使用以下代码.但对于这样一个简单的查询,我觉得相当沉重.

create table #TempId
(
    [Id] bigint
)
go

insert into …
Run Code Online (Sandbox Code Playgroud)

sql-server performance aggregate-functions database-partitioning sql-server-2012

3
推荐指数
1
解决办法
4623
查看次数

表中每天的值总和

我的桌子:

Dataid  date        register_type  read_value
77      2012-08-15  gen            20
77      2012-08-15  solar          48
77      2012-08-16  gen            39
77      2012-08-16  gen            22
80      2012-07-11  gen            11
80      2012-07-12  id             23
91      2012-02-01  id              4
91      2012-02-01  gen            59
91      2012-02-08  gen            18

我希望,每一天,read_values只为"gen" 做总和register_type.我基本上希望查询返回下表:

dataid  date        daily_value
77      2012-08-15  20.00
77      2012-08-16  61.00
80      2012-07-11  11.00
91      2012-02-01  59.00
91      2012-02-08  18.00

我尝试了以下查询,但它不起作用:

select 
    dataid, 
    date_trunc('day', timestamp_localtime) as truncated_day,
    substring(cast(date_trunc('day', timestamp_localtime) as text)
              from 1 for 10) …
Run Code Online (Sandbox Code Playgroud)

sql postgresql datetime aggregate-functions

3
推荐指数
1
解决办法
9699
查看次数

正常列后跟agregate函数,但不在group by中

我知道只有在Group By包含它们的情况下才允许使用普通列后跟聚合函数.
但是,为什么以下工作呢?

mysql> select payee,sum(amount) from checks;  
+---------+-------------+  
| payee   | sum(amount) |  
+---------+-------------+  
| Ma Bell |      893.76 |  
+---------+-------------+  
1 row in set (0.00 sec)  
Run Code Online (Sandbox Code Playgroud)

mysql sql group-by aggregate-functions

3
推荐指数
1
解决办法
104
查看次数

用于检测PostgreSQL中趋势的聚合函数

我正在使用psql DB来存储数据结构,如下所示:

datapoint(userId, rank, timestamp)
Run Code Online (Sandbox Code Playgroud)

其中timestamp是Unix Epoch毫秒时间戳.

在这个结构中,我每天存储每个用户的等级,所以它就像:

UserId   Rank  Timestamp
1        1     1435366459
1        2     1435366458
1        3     1435366457
2        8     1435366456
2        6     1435366455
2        7     1435366454
Run Code Online (Sandbox Code Playgroud)

所以,在上面的样本数据,用户id 1其改进它的秩每次测量,这意味着它有一个积极的趋势,而用户id 2在秩,这意味着它具有负的趋势正在下降.

我需要做的是根据最后N次测量检测所有具有正趋势的用户.

sql database postgresql select aggregate-functions

3
推荐指数
1
解决办法
3825
查看次数

带有计数和分组的内部联接

我有2张桌子

时间表:
pupil_id,staff_id,subject,lesson_id


Staff_info : staff_id,姓氏

时间表表包含1000行,因为每个学生的ID都列在他们所执行的每个时段下.

我想列出所有教师的名字,以及他们所做的课程数量(数).所以我必须用DISTINCT进行SELECT.

SELECT DISTINCT TIMETABLE.STAFF_ID,
                COUNT(TIMETABLE.LESSON_ID),
                STAFF.SURNAME
FROM STAFF
INNER JOIN TIMETABLE ON TIMETABLE.STAFF_ID = STAFF.STAFF_ID
GROUP BY TIMETABLE.STAFF_ID
Run Code Online (Sandbox Code Playgroud)

但是我得到错误:

列'STAFF.SURNAME'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.

t-sql group-by count aggregate-functions

3
推荐指数
1
解决办法
1923
查看次数

在KDB/Q中按时滑动窗口

Q/KDB中有一些函数让我们在滑动窗口(msum,mavg等)上聚合.但是这些函数会考虑先前行的数量.

我想要一个可以在滑动窗口上聚合但有时间而不是行数的函数.例如在最后5分钟.

这样的功能存在吗?如果没有,我该如何设计呢?我不想使用while循环,因为它会因为大量数据而导致我的程序运行速度过慢.

谢谢您的帮助

aggregate aggregate-functions sliding-window kdb q-lang

3
推荐指数
1
解决办法
1501
查看次数