sql - 如何对我创建的分布式数据库表应用全局查询

标签 sql database distributed-database

我用客户信息创建了 4 个表(孟买、类加罗尔、浦那、德里)

在所有 4 个表中,我的表中有一个账单金额表列,我想显示所有表的账单金额总和,从最高到最低。

我使用了以下查询,但我不知道如何继续。

创建 View view1 为:

Select sum(m.BillAmount),sum(p.BillAmount),sum(b.BillAmount),sum(c.BillAmount)
from Mumbai m,Chennai c, Pune p, Bangalore b 
ORDER BY

请问我可以获得与此相关的适当查询吗?

最佳答案

你这里有一个设计问题。你应该只有一张表来存储你所有的城市。您现在有 4 个城市,但如果旅游客户想要添加另一个城市,根据您当前的设计,您将不得不添加一个表并更改您的 sql 查询。

如果您为您的城市创建一个表,并为您的账单创建另一个表,并使用引用城市的外键,您将能够获得所有城市的账单总和。

Table cities
------------------
id     city_name
1      Mumbai
2      Bengalore
3      Pune
4      Delhi
-------------------

Table bills
--------------------
id   city_id  amount
1       1      100
2       1      100
3       2      100
4       3      100
5       4      100
6       3      100
7       1      100

这里是查询

SELECT c.city_name, SUM(b.amount) as total
FROM bills as b INNER JOIN cities as c
    ON c.id = b.city_id
GROUP BY c.id
ORDER BY total DESC;

关于sql - 如何对我创建的分布式数据库表应用全局查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49834478/

相关文章:

来自表的两个独立列的不同值的 MySQL COUNT

sql - 如何使用一个 sql 查询为每个条件创建一个单独的列?

php - MySQL char 接受不固定的值

基于指定表列的 SQL 外键

java - 无法从 Vector<Object> 转换为 Integer

mysql - MySQL Cluster 7.3 如何实现 99,999% 的可用性? CAP定理的对立面

sql - 如何在 Oracle 11g 中选择前五行或 'N' 行

数据库设计和展平复合主键

node.js - 什么被视为针对 Google Cloud Datastore 中的实体组限制的写入

python - DynamoDb 安全更新