内部联接和SUM上的SQL查询(SQLite3)

时间:2018-01-22 04:06:43

标签: sql sqlite

我有两个带有架构的表

CREATE TABLE City
  (
     City CHAR,
     Area INT
  )

CREATE TABLE Revenue
  (
     Municipality        CHAR,
     City_Code           CHAR,
     [Road tax]          INT,
     [Water Tax]         INT,
     [Entertainment Tax] INT
  ) 

我需要按照区域的降序排列前3个城市,同时打印城市获得的总税收总和。有点像(例如):

New York, 40
Chicago, 27
London, 30

表格中的城市字段表格中的城市和城市代码字段收入需要识别表格之间的城市。

2 个答案:

答案 0 :(得分:0)

您的架构没有意义。您的两个表中都应该有一个公用密钥,以便可以通过加入CITY列从CITY表中获取CITY_CODE名称。我在下面的查询中做了这个假设。

SELECT B.CITY, (A.ROAD_TAX + A.WATER_TAX + A.ENTERTAINMENT_TAX) AS TOTAL_TAX
FROM
REVENUE A 
INNER JOIN
CITY B
ON A.CITY_CODE = B.CITY_CODE
ORDER BY (A.ROAD_TAX + A.WATER_TAX + A.ENTERTAINMENT_TAX) DESC
LIMIT 3;

答案 1 :(得分:0)

试用此代码:

SELECT C.City,(R.[Road tax]+R.[Water Tax]+R.[Entertainment Tax])[Total Tax]
FROM City C
JOIN Revenue R ON R.CityCode=C.City
ORDER BY C.Area DESC
LIMIT 3;