数据库系统主题考试任务:
我有以下架构:
Excavator(EID, Type) - EID is a key
Company(Name, HQLocation) - Name is a key
Work(Name, EID, Site, Date) - All collumns together form a key
Run Code Online (Sandbox Code Playgroud)
我必须用关系代数编写这个查询:
"Which company was digging on exactly one site on 1st of May?"
Run Code Online (Sandbox Code Playgroud)
我不知道如何在没有聚合函数(计数)的情况下表达它。我知道人们将这些函数添加到关系代数中,但我们在这次考试期间被禁止这样做。
您可以使用标准集合运算、除法、投影、选择、连接、笛卡尔积。
我需要在 Spring Batch 作业中插入聚合。但是聚合步骤需要有整个数据集可用。
在纯 SQL 中,很容易编写 SQL 聚合请求:完整的数据集(存储在数据库中)可用。
但是在 Spring Batch 作业中,一切都在内存中完成,并以分块方式传播。那么如何处理那种散落的数据呢?
您对插入聚合步骤/流程的最佳实践有什么建议吗?
非常感谢您的启发
我正在使用文件 ID 字段聚合一个表。每个文件都有一个与一个(他的)文件 ID 完全匹配的名称。
select file_key, min(fullfilepath)
from table
group by file_key
Run Code Online (Sandbox Code Playgroud)
因为我知道表的结构,所以我知道我需要任何完整文件路径。最小值和最大值都可以,但是需要很多时间。
我遇到了这个返回第一个值的聚合函数。不幸的是,这个函数需要很长时间,因为它会扫描整个表。例如,这非常慢:
select first(file_id) from table;
Run Code Online (Sandbox Code Playgroud)
最快的方法是什么?有或没有聚合功能。
在子-父表中,我需要汇总每个子项的所有父项。我可以很容易地在 CTE 查询中为每个父母获取孩子,但无法弄清楚如何反转它(这里是 sqfiddle)。鉴于这种:
CREATE TABLE rel(
child integer,
parent integer
);
INSERT INTO rel(child, parent)
VALUES
(1,NULL),
(2,1),
(3,1),
(4,3),
(5,2),
(6,4),
(7,2),
(8,7),
(9,8);
Run Code Online (Sandbox Code Playgroud)
将返回父数组的查询(顺序不重要):
1, {NULL}
2, {1}
3, {1}
4, {3,1}
5, {2,1}
6, {4,3,1}
7, {2,1}
8, {7,2,1}
9, {8,7,2,1}
Run Code Online (Sandbox Code Playgroud) 我有一个 PostgreSQL 查询,它产生以下结果:
SELECT o.order || '-' || osh.ordinal_number AS order,
o.company,
o.order_total,
SUM(osh.items) AS order_shipment_total,
o.order_type
FROM orders o
JOIN order_shipments osh ON o.order_id = osh.order_id
WHERE o.order = [some order number]
GROUP BY o.order,
o.company,
o.order_total,
o.order_type;
order | company | order_total | order_shipment_total | order_type
-------------------------------------------------------------------
123-1 | A corp. | null | 125.00 | new
123-2 | B corp. | null | 100.00 | new
Run Code Online (Sandbox Code Playgroud)
我需要替换o.order_total(它不能正常工作)并总结 order_shipment_total 列的总和,这样,对于上面的例子,每一行都说 225.00。我需要上面的结果如下所示:
order | company | order_total …Run Code Online (Sandbox Code Playgroud) 我研究了elasticsearch聚合查询,但找不到它是否支持多个聚合函数。换句话说,我想知道elasticsearch是否可以生成与此Sql聚合查询等效的内容:
SELECT account_no, transaction_type, count(account_no), sum(amount), max(amount) FROM index_name GROUP BY account_no, transaction_type Having count(account_no) > 10
Run Code Online (Sandbox Code Playgroud)
如果是,怎么办?谢谢。
aggregate-functions elasticsearch elasticsearch-aggregation elasticsearch-sql
我有两个日期Start Date: 2019-08-13和End Date: 2019-08-20。我想结束日期的差异在工作日(节假日除外)项的开始日期。所以我的成绩会4作为2019-08-15一个节日和2019-08-17,2019-08-18是周末。
aggregate-functions mongodb mongodb-query aggregation-framework
这是我的数据
Code SubCode Colour Fruit Car City Name
A A1 Red Apple Honda Mel John
A A1 Green Apple Toyota NYC John
A A1 Red Banana Honda Lon John
A A1 Red Banana Opel Mel John
A A2 ...
A A2 ...
A A3
A A3
Run Code Online (Sandbox Code Playgroud)
这是我的sql
SELECT Code, SubCode, STRING_AGG(Colour, ',') STRING_AGG(Fruit, ',') STRING_AGG(Car, ',') STRING_AGG(City, ',') STRING_AGG(Name, ',')
FROM myTable
Run Code Online (Sandbox Code Playgroud)
我得到这个结果
Code SubCode Colour Fruit Car City Name
A A1 Red,Green,Red,Red Apple,Apple,Banana,Banan Honda,Toyota,Honda,Opel ...
Run Code Online (Sandbox Code Playgroud)
有没有办法让我的价值观与众不同
对于单个值,我可以创建一个子查询STRING_AGG? …
我有一个包含 500 多行的表,我想对一列中的所有值求和。
例子:
name | number
----------------
name1 | 25
name2 | 10
name3 | 5
name4 | 20
Run Code Online (Sandbox Code Playgroud)
总金额为:60
我可以通过 PHP 做到这一点,但是可以使用 SQL 查询吗?
我试图通过使用 id 组合两个表来显示每个 id 的总销售额。我有两个表 1. 用户表,2. 销售表
//user table
--------------
| id | name |
---------------
| 1 | yuki |
| 2 | soman |
---------------
// sales table
--------------
| id | total|
---------------
| 1 | 300 |
| 2 | 23 |
| 1 | 500 |
---------------
Run Code Online (Sandbox Code Playgroud)
通过我的查询,它只显示 1 个销售女巫是 yuki 的销售。
SELECT i.name,SUM(ROUND(s.total),2)) AS sales
FROM user i
INNER JOIN sales s
ON i.id = s.id
--------------
| name | sales|
---------------
| …Run Code Online (Sandbox Code Playgroud) sql ×4
postgresql ×3
subquery ×2
sum ×2
database ×1
group-by ×1
inner-join ×1
mongodb ×1
mysql ×1
parent-child ×1
recursion ×1
spring-batch ×1
sql-server ×1
string ×1