Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询按英国邮政编码统计订单数量_Sql_Sql Server_Tsql_Select_Count - Fatal编程技术网

Sql 查询按英国邮政编码统计订单数量

Sql 查询按英国邮政编码统计订单数量,sql,sql-server,tsql,select,count,Sql,Sql Server,Tsql,Select,Count,我有一个客户下的订单表,我想检查的是历史上哪个国家的订单是从哪个地区来的,我只能通过邮政编码来检查,以获得一个邮政编码为SK的订单。。。表示其stockport,类似于从M开始的邮政编码。。表示订单来自曼彻斯特,是否可以编写一个查询,通过邮政编码统计订单 订单表的某些字段: 订单号OGUID custID firstname姓氏地址邮政编码电子邮件授权日期等 如有任何建议或协助,将不胜感激。 谢谢如果您有一个包含城市代码和城市名称的表,那么您可能可以使用以下类似的方法,使用类似的方法将订单表与代

我有一个客户下的订单表,我想检查的是历史上哪个国家的订单是从哪个地区来的,我只能通过邮政编码来检查,以获得一个邮政编码为SK的订单。。。表示其stockport,类似于从M开始的邮政编码。。表示订单来自曼彻斯特,是否可以编写一个查询,通过邮政编码统计订单

订单表的某些字段: 订单号OGUID custID firstname姓氏地址邮政编码电子邮件授权日期等

如有任何建议或协助,将不胜感激。
谢谢

如果您有一个包含城市代码和城市名称的表,那么您可能可以使用以下类似的方法,使用类似的方法将订单表与代码连接起来:

您可以使用GROUP BY获取每个邮政编码中的订单总数:

如果希望包含城市,还可以按城市分组:


这是一个有效的方法。。。但是对于一个庞大的列表来说,它可能太长了。我将设法找到解决这个问题的办法

SELECT
  CASE
    WHEN postcode LIKE 'SK%'   THEN 'SK'
    WHEN postcode LIKE 'M%' THEN 'M'
  END AS group_by_value
, COUNT(*) AS group_by_count
FROM [Table] a
GROUP BY 
  CASE
    WHEN postcode LIKE 'SK%'   THEN 'SK'
    WHEN postcode LIKE 'M%' THEN 'M'
  END

你试过这样的东西吗?我认为,邮政编码的城镇部分将是前1或2个字节,由后面的数字分隔。这会给你前几个字母

select substring(postcode,1, patindex('%[0-9]%',postcode)-1), count(*)
from Order
group by substring(postcode,1, patindex('%[0-9]%',postcode)-1)

然后你必须将M解码到曼彻斯特,W解码到西伦敦,GU解码到吉尔福德等等。

你是说其他列是什么意思?我的意思是你可以在那里添加任何其他列,如“OrderNumber OGUID custID firstname last name address”除了城市代码之外,所有邮政编码都不同,我想按邮政编码统计订单,但应按city@MrA你也可以按城市添加分组我想你误解了我的问题,例如,如果我收到3份订单,一份来自M8 5CA、SK 1SED、M9 6AU,查询结果应该是:曼彻斯特2份订单,斯托克波特1份订单,因为邮政编码中的M代表曼彻斯特,而邮政编码中的SK代表曼彻斯特Stockport@MrA您是否有某种表格可以识别每个城市和城市/邮政编码?如果不是,那你怎么确定一个邮政编码是以一个字母开头还是以两个字母开头呢?是的,我有一份英国所有城市的名单,上面有他们的编码,但是它非常庞大,你可能需要在邮政编码和地名之间找到某种映射——而不是可怕的字符串解析——我想你需要尝试在网上找到第三方,他们已经这样做了,并将为你提供一个SQL表来部分匹配。我不希望这是免费的!例如,我发现了一个,但它的价格是24英镑:
select postcode, count(postcode) TotalOrdersByPostCode
from orders
group by postcode
select city, postcode, count(postcode) TotalOrdersByPostCode
from orders
group by  city, postcode
SELECT
  CASE
    WHEN postcode LIKE 'SK%'   THEN 'SK'
    WHEN postcode LIKE 'M%' THEN 'M'
  END AS group_by_value
, COUNT(*) AS group_by_count
FROM [Table] a
GROUP BY 
  CASE
    WHEN postcode LIKE 'SK%'   THEN 'SK'
    WHEN postcode LIKE 'M%' THEN 'M'
  END
select substring(postcode,1, patindex('%[0-9]%',postcode)-1), count(*)
from Order
group by substring(postcode,1, patindex('%[0-9]%',postcode)-1)