-3

私は顧客からの注文の表を持っています。私が欲しいのは、国の注文のどの部分から歴史的に来ているかを確認することです。これは郵便番号でしか確認できません。たとえば、郵便番号SKの注文はそのストックポートを意味します。 、同様に、Mで始まる郵便番号は、注文がマンチェスターからのものであることを意味します。郵便番号で注文をカウントできるクエリを作成することは可能ですか。

Orderテーブルのいくつかのフィールド:OrderNumberOGUIDcustID名姓アドレス郵便番号電子メール承認日など...

任意の提案や支援をいただければ幸いです。ありがとう

4

4 に答える 4

1

これが機能する方法です...しかし、巨大なリストには長すぎる可能性があります。私はその問題を回避する方法を見つけようとします。

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
于 2013-01-22T10:16:44.540 に答える
1

都市コードと都市名を含むテーブルがある場合、次のようなものを使用して、 をorders使用してテーブルをコードに結合できる場合がありLIKEます。

select o.postcode,
  c.city,
  count(c.code) over(partition by c.code) Total
from orders o
inner join codes c
  on o.postcode like '%'+c.code+'%'

デモで SQL Fiddle を参照してください

を使用GROUP BYして、それぞれの合計注文数を取得できpostcodeます。

select postcode, count(postcode) TotalOrdersByPostCode
from orders
group by postcode

City含まれている必要がある場合は、次のGROUP BY都市も選択できます。

select city, postcode, count(postcode) TotalOrdersByPostCode
from orders
group by  city, postcode

于 2013-01-22T10:04:46.290 に答える
0
select count(1) over(partition by postcode) as countByPostcode, othecolumnhere
from Order
于 2013-01-22T10:04:16.000 に答える
0

このようなことを試しましたか?郵便番号の町の部分は最初の 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 をギルフォードにデコードする必要があります。

于 2013-01-22T15:36:57.063 に答える