Other DEGREE SQL function


1. Usage of DEGREES to show product similiarity angle in Radians and Degrees

SQL Server Query 1

            
 WITH ProductData AS (  
SELECT
ProductID,
ProductName,
UnitPrice,
UnitsInStock,
-- Normalize UnitPrice and UnitsInStock to a range of 0 to 1
CAST(UnitPrice AS DECIMAL(10, 4)) / (SELECT MAX(UnitPrice) FROM Products) AS NormalizedPrice,
CAST(UnitsInStock AS DECIMAL(10, 4)) / (SELECT CAST(MAX(UnitsInStock) AS DECIMAL(10,4)) FROM Products) AS NormalizedStock
FROM Products
WHERE UnitsInStock > 0 AND UnitPrice > 0 --important to avoid nulls in normalization
),
ProductPairs AS (
SELECT
p1.ProductID AS Product1,
p1.ProductName AS ProductName1,
p2.ProductID AS Product2,
p2.ProductName AS ProductName2,
-- Calculate a value similar to cosine similarity (but with our normalized data)
(p1.NormalizedPrice * p2.NormalizedPrice + p1.NormalizedStock * p2.NormalizedStock) /
(
SQRT(p1.NormalizedPrice * p1.NormalizedPrice + p1.NormalizedStock * p1.NormalizedStock) *
SQRT(p2.NormalizedPrice * p2.NormalizedPrice + p2.NormalizedStock * p2.NormalizedStock)
) AS SimilarityValue
FROM ProductData p1
CROSS JOIN ProductData p2
WHERE p1.ProductID < p2.ProductID
),
AcosResult as (
SELECT
Product1,
ProductName1,
Product2,
ProductName2,
SimilarityValue,
-- Ensure the value is within the valid range for ACOS
CASE
WHEN SimilarityValue > 1 THEN 1
WHEN SimilarityValue < -1 THEN -1
ELSE SimilarityValue
END AS AdjustedSimilarityValue,
ACOS(
CASE
WHEN SimilarityValue > 1 THEN 1
WHEN SimilarityValue < -1 THEN -1
ELSE SimilarityValue
END
) AS SimilarityAngleInRadians
FROM ProductPairs

)
SELECT TOP 10
Product1,
ProductName1,
Product2,
ProductName2,
SimilarityAngleInRadians,
DEGREES(SimilarityAngleInRadians) AS SimilarityAngleInDegrees
FROM AcosResult
ORDER BY SimilarityAngleInRadians;

Create SQL query with SqlQueryBuilder 1

            
 var (sql1, parameters1) = new SqlQueryBuilder()  
.WithCTETable(new Table("ProductData"), new SqlQueryBuilder()
.Select()
.Columns("ProductID", "ProductName", "UnitPrice", "UnitsInStock")
.Column(new ColumnArithmatic()
.SqlFunction(new CAST(new Column("UnitPrice"), SqlDataType.DECIMAL, new Tuple<int, int>(10, 4)))
.DIVIDE()
.Column(new SqlQueryBuilder().Select()
.Column(new MAX(new Column("UnitPrice")), "NormalizedPrice")
.From("Products")
)
, "NormalizedPrice")
.Column(new ColumnArithmatic()
.SqlFunction(new CAST(new Column("UnitsInStock"), SqlDataType.DECIMAL, new Tuple<int, int>(10, 4)))
.DIVIDE()
.Column(new SqlQueryBuilder().Select()
.Column(new CAST(new MAX(new Column("UnitsInStock")), SqlDataType.DECIMAL, new Tuple<int, int>(10, 4)), "NormalizedStock")
.From("Products")
)
, "NormalizedStock")
.From("Products")
.Where(new Where(new Column("UnitsInStock").GreaterThan(0))
.AND(new Column("UnitPrice").GreaterThan(0)))
)
.WithCTETable(new Table("ProductPairs"), new SqlQueryBuilder()
.Select()
.Column("p1.ProductID", "Product1")
.Column("p1.ProductName", "ProductName1")
.Column("p2.ProductID", "Product2")
.Column("p2.ProductName", "ProductName2")
.Column(new ColumnArithmatic()
.StartBracket()
.Column("p1.NormalizedPrice").MULTIPLY().Column("p2.NormalizedPrice")
.ADD().Column("p1.NormalizedStock").MULTIPLY().Column("p2.NormalizedStock")
.EndBracket().DIVIDE()
.StartBracket()
.SqlFunction(new SQRT(new ColumnArithmatic().Column("p1.NormalizedPrice").MULTIPLY().Column("p1.NormalizedPrice").ADD()
.Column("p1.NormalizedStock").MULTIPLY().Column("p1.NormalizedStock")
)).MULTIPLY()
.SqlFunction(new SQRT(new ColumnArithmatic().Column("p2.NormalizedPrice").MULTIPLY().Column("p2.NormalizedPrice")
.ADD().Column("p2.NormalizedStock").MULTIPLY().Column("p2.NormalizedStock")
.EndBracket()
))
, "SimilarityValue")
.From("ProductData", "p1")
.Join(new List<IJoin>()
{
new CROSSJOIN().TableName(new Table("ProductData","p2"))
})
.Where(new Where(new Column("p1.ProductID").LessThan(new Column("p2.ProductID"))))
)
.WithCTETable(new Table("AcosResult"), new SqlQueryBuilder()
.Select()
.Columns("Product1", "ProductName1", "Product2", "ProductName2", "SimilarityValue")
.Column(new CASE()
.When(new Column("SimilarityValue").GreaterThan(1))
.Then(1)
.When(new Column("SimilarityValue").LessThan(-1))
.Then(-1)
.Else(new Column("SimilarityValue"))
, "AdjustedSimilarityValue")
.Column(new ACOS(new CASE()
.When(new Column("SimilarityValue").GreaterThan(1))
.Then(1)
.When(new Column("SimilarityValue").LessThan(-1))
.Then(-1)
.Else(new Column("SimilarityValue"))
)
, "SimilarityAngleInRadians")
.From("ProductPairs")
)
.Select().Top(10)
.Columns("Product1", "ProductName1", "Product2", "ProductName2", "SimilarityAngleInRadians")
.Column(new DEGREES(new Column("SimilarityAngleInRadians")), "SimilarityAngleInDegrees")
.From("AcosResult")
.OrderBy(new OrderBy().SetColumnAscending("SimilarityAngleInRadians"))
.Build();

Query build by SqlQueryBuilder 1

            
WITH ProductData
AS (SELECT ProductID,
           ProductName,
           UnitPrice,
           UnitsInStock,
           CAST (UnitPrice AS DECIMAL (10, 4)) / (SELECT MAX(UnitPrice) AS NormalizedPrice
                                                  FROM Products) AS NormalizedPrice,
           CAST (UnitsInStock AS DECIMAL (10, 4)) / (SELECT CAST (MAX(UnitsInStock) AS DECIMAL (10, 4)) AS NormalizedStock
                                                     FROM Products) AS NormalizedStock
    FROM Products
    WHERE UnitsInStock > @pMAIN_2507192103021797990
          AND UnitPrice > @pMAIN_2507192103021797991),
 ProductPairs
AS (SELECT p1.ProductID AS Product1,
           p1.ProductName AS ProductName1,
           p2.ProductID AS Product2,
           p2.ProductName AS ProductName2,
           (p1.NormalizedPrice * p2.NormalizedPrice + p1.NormalizedStock * p2.NormalizedStock) / (SQRT(p1.NormalizedPrice * p1.NormalizedPrice + p1.NormalizedStock * p1.NormalizedStock) * SQRT(p2.NormalizedPrice * p2.NormalizedPrice + p2.NormalizedStock * p2.NormalizedStock)) AS SimilarityValue
    FROM ProductData AS p1 CROSS JOIN ProductData AS p2
    WHERE p1.ProductID < p2.ProductID),
 AcosResult
AS (SELECT Product1,
           ProductName1,
           Product2,
           ProductName2,
           SimilarityValue,
           CASE WHEN SimilarityValue > @pMAIN_2507192103021797992 THEN @pMAIN_2507192103021797993 WHEN SimilarityValue < @pMAIN_2507192103021797994 THEN @pMAIN_2507192103021797995 ELSE SimilarityValue END AS AdjustedSimilarityValue,
           ACOS(CASE WHEN SimilarityValue > @pMAIN_2507192103021797996 THEN @pMAIN_2507192103021797997 WHEN SimilarityValue < @pMAIN_2507192103021797998 THEN @pMAIN_2507192103021797999 ELSE SimilarityValue END) AS SimilarityAngleInRadians
    FROM ProductPairs)
SELECT TOP 10 Product1,
              ProductName1,
              Product2,
              ProductName2,
              SimilarityAngleInRadians,
              DEGREES(SimilarityAngleInRadians) AS SimilarityAngleInDegrees
FROM AcosResult
ORDER BY SimilarityAngleInRadians ASC;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192103021797990 0
@pMAIN_2507192103021797991 0
@pMAIN_2507192103021797992 1
@pMAIN_2507192103021797993 1
@pMAIN_2507192103021797994 -1
@pMAIN_2507192103021797995 -1
@pMAIN_2507192103021797996 1
@pMAIN_2507192103021797997 1
@pMAIN_2507192103021797998 -1
@pMAIN_2507192103021797999 -1

Query Results 1:

  Product1 ProductName1 Product2 ProductName2 SimilarityAngleInRadians SimilarityAngleInDegrees
1 10 Ikura 70 Outback Lager 0 0
2 13 Konbu 50 Valkoinen suklaa 0 0
3 25 NuNuCa Nuß-Nougat-Creme 52 Filo Mix 0 0
4 7 Uncle Bob's Organic Dried Pears 49 Maxilaku 0.000000021073424255447 0.00000120741826972573
5 34 Sasquatch Ale 46 Spegesild 0.0000896516979850368 0.00513666392072411
6 6 Grandma's Boysenberry Spread 55 Pâté chinois 0.000170212591084587 0.00975246308913292
7 26 Gumbär Gummibärchen 68 Scottish Longbreads 0.00032007904335472 0.0183391782948104
8 23 Tunnbröd 73 Röd Kaviar 0.000459719716187663 0.0263399994965051
9 40 Boston Crab Meat 73 Röd Kaviar 0.000509145312503459 0.0291718775653176
10 23 Tunnbröd 40 Boston Crab Meat 0.000968865028495687 0.0555118770506251


2. Usage of DEGREES to show sales trend angle in Radians and Degrees

SQL Server Query 2

            
 WITH MonthlyCategorySales AS (  
SELECT
c.CategoryName,
DATEPART(month, o.OrderDate) AS SaleMonth,
SUM(od.Quantity * od.UnitPrice) AS MonthlySales
FROM Categories c
JOIN Products p ON c.CategoryID = p.CategoryID
JOIN [Order Details] od ON p.ProductID = od.ProductID
JOIN Orders o ON od.OrderID = o.OrderID
WHERE o.OrderDate BETWEEN '1996-01-01' AND '1996-12-31' -- Limit to one year for simplicity
GROUP BY c.CategoryName, DATEPART(month, o.OrderDate)
),
CategoryTotalSales AS (
SELECT
CategoryName,
SUM(MonthlySales) AS TotalSales
FROM MonthlyCategorySales
GROUP BY CategoryName
),
NormalizedSales AS (
SELECT
mcs.CategoryName,
mcs.SaleMonth,
-- Simplified normalization: (MonthlySales / TotalSales) * 2 -1. This isn't robust, but good for example
CAST(mcs.MonthlySales AS FLOAT) / cts.TotalSales AS NormalizedSales
FROM MonthlyCategorySales mcs
JOIN CategoryTotalSales cts ON mcs.CategoryName = cts.CategoryName
),
SalesTrendAngle AS (
SELECT
CategoryName,
-- Calculate ASIN of the normalized sales.
ASIN(AVG(NormalizedSales)) AS TrendAngleInRadians,
DEGREES(ASIN(AVG(NormalizedSales))) AS TrendAngleInDegrees
FROM NormalizedSales
GROUP BY CategoryName
)
SELECT
CategoryName,
TrendAngleInRadians,
TrendAngleInDegrees
FROM SalesTrendAngle
ORDER BY TrendAngleInDegrees;

Create SQL query with SqlQueryBuilder 2

            
 var (sql2, parameters2) = new SqlQueryBuilder()  
.WithCTETable(new Table("MonthlyCategorySales"), new SqlQueryBuilder()
.Select()
.Column("c.CategoryName", "CategoryName")
.Column(new DATEPART(SqlDateInterval.month, new Column("o.OrderDate")), "SaleMonth")
.Column(new SUM(new ColumnArithmatic().Column("od.Quantity").MULTIPLY().Column("od.UnitPrice"))
, "MonthlySales")
.From("Categories", "c")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName(new Table("Products","p"))
.On(new Column("c.CategoryID").Equale(new Column("p.CategoryID"))),
new INNERJOIN().TableName(new Table("[Order Details]","od"))
.On(new Column("p.ProductID").Equale(new Column("od.ProductID"))),
new INNERJOIN().TableName(new Table("Orders","o"))
.On(new Column("od.OrderID").Equale(new Column("o.OrderID")))
})
.Where(new Where(new BETWEEN(new Column("o.OrderDate"), "1996-01-01", "1996-12-31")))
.GroupBy(new GroupBy(new Column("c.CategoryName"), new DATEPART(SqlDateInterval.month, new Column("o.OrderDate"))))
)
.WithCTETable(new Table("CategoryTotalSales"), new SqlQueryBuilder()
.Select()
.Column("CategoryName", "CategoryName")
.Column(new SUM(new Column("MonthlySales")), "TotalSales")
.From("MonthlyCategorySales")
.GroupBy(new GroupBy(new Column("CategoryName")))
)
.WithCTETable(new Table("NormalizedSales"), new SqlQueryBuilder()
.Select()
.Columns("mcs.CategoryName", "mcs.SaleMonth")
.Column(new ColumnArithmatic().SqlFunction(new CAST(new Column("mcs.MonthlySales"), SqlDataType.FLOAT)).DIVIDE()
.Column("cts.TotalSales"), "NormalizedSales")
.From("MonthlyCategorySales", "mcs")
.Join(new List<IJoin>()
{
new INNERJOIN ().TableName(new Table("CategoryTotalSales","cts"))
.On(new Column("mcs.CategoryName").Equale(new Column("cts.CategoryName")))
})
)
.WithCTETable(new Table("SalesTrendAngle"), new SqlQueryBuilder()
.Select()
.Column("CategoryName", "CategoryName")
.Column(new ASIN(new AVG(new Column("NormalizedSales"))), "TrendAngleInRadians")
.Column(new DEGREES(new ASIN(new AVG(new Column("NormalizedSales")))), "TrendAngleInDegrees")
.From("NormalizedSales")
.GroupBy(new GroupBy("CategoryName"))
)
.Select()
.Columns("CategoryName", "TrendAngleInRadians", "TrendAngleInDegrees")
.From("SalesTrendAngle")
.Build();

Query build by SqlQueryBuilder 2

            
WITH MonthlyCategorySales
AS (SELECT c.CategoryName AS CategoryName,
           DATEPART(month, o.OrderDate) AS SaleMonth,
           SUM(od.Quantity * od.UnitPrice) AS MonthlySales
    FROM Categories AS c
         INNER JOIN
         Products AS p
         ON c.CategoryID = p.CategoryID
         INNER JOIN
         [Order Details] AS od
         ON p.ProductID = od.ProductID
         INNER JOIN
         Orders AS o
         ON od.OrderID = o.OrderID
    WHERE o.OrderDate BETWEEN @pMAIN_2507192103022373260 AND @pMAIN_2507192103022373261
    GROUP BY c.CategoryName, DATEPART(month, o.OrderDate)),
 CategoryTotalSales
AS (SELECT CategoryName AS CategoryName,
           SUM(MonthlySales) AS TotalSales
    FROM MonthlyCategorySales
    GROUP BY CategoryName),
 NormalizedSales
AS (SELECT mcs.CategoryName,
           mcs.SaleMonth,
           CAST (mcs.MonthlySales AS FLOAT) / cts.TotalSales AS NormalizedSales
    FROM MonthlyCategorySales AS mcs
         INNER JOIN
         CategoryTotalSales AS cts
         ON mcs.CategoryName = cts.CategoryName),
 SalesTrendAngle
AS (SELECT CategoryName AS CategoryName,
           ASIN(AVG(NormalizedSales)) AS TrendAngleInRadians,
           DEGREES(ASIN(AVG(NormalizedSales))) AS TrendAngleInDegrees
    FROM NormalizedSales
    GROUP BY CategoryName)
SELECT CategoryName,
       TrendAngleInRadians,
       TrendAngleInDegrees
FROM SalesTrendAngle;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192103022373260 1996-01-01
@pMAIN_2507192103022373261 1996-12-31

Query Results 2:

  CategoryName TrendAngleInRadians TrendAngleInDegrees
1 Beverages 0.16744807921968932 9.594068226860461
2 Condiments 0.16744807921968932 9.594068226860461
3 Confections 0.16744807921968932 9.594068226860461
4 Dairy Products 0.16744807921968932 9.594068226860461
5 Grains/Cereals 0.16744807921968932 9.594068226860461
6 Meat/Poultry 0.16744807921968932 9.594068226860461
7 Produce 0.16744807921968932 9.594068226860461
8 Seafood 0.16744807921968932 9.594068226860461


3. Usage of DEGREES to demonstrate customer location analysis

SQL Server Query 3

            
 WITH CustomerCoordinates AS (  
SELECT
CustomerID,
CompanyName,
-- Simulate customer coordinates. In a real scenario, these would come from your table.
-- Using row_number() to generate different coordinates for each customer for the example
47.6062 + (ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) * 0.1) AS Latitude,
-122.3321 + (ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) * 0.15) AS Longitude
FROM Customers
),
CustomerBearing AS (
SELECT
CustomerID,
CompanyName,
Latitude,
Longitude,
-- Calculate the bearing using ATN2
DEGREES(ATN2(
SIN(RADIANS(Longitude - -122.3321)) * COS(RADIANS(Latitude)),
COS(RADIANS(47.6062)) * SIN(RADIANS(Latitude)) -
SIN(RADIANS(47.6062)) * COS(RADIANS(Latitude)) * COS(RADIANS(Longitude - -122.3321))
)) AS BearingInDegrees
FROM CustomerCoordinates
)
SELECT
CustomerID,
CompanyName,
BearingInDegrees
FROM CustomerBearing
ORDER BY BearingInDegrees;

Create SQL query with SqlQueryBuilder 3

            
 var (sql3, parameters3) = new SqlQueryBuilder()  
.WithCTETable(new Table("CustomerCoordinates"), new SqlQueryBuilder()
.Select()
.Columns("CustomerID", "CompanyName")
.Column(new ColumnArithmatic().Value(47.6062).ADD()
.StartBracket()
.SqlFunction(new ROW_NUMBER().ORDER_BY(new OrderBy().SetSelectNull()))
.MULTIPLY(0.1)
.EndBracket()
, "Latitude")
.Column(new ColumnArithmatic().Value(-122.3321).ADD()
.StartBracket()
.SqlFunction(new ROW_NUMBER().ORDER_BY(new OrderBy().SetSelectNull()))
.MULTIPLY(0.15)
.EndBracket()
, "Longitude")
.From("Customers")
)
.WithCTETable(new Table("CustomerBearing"), new SqlQueryBuilder()
.Select()
.Columns("CustomerID", "CompanyName", "Latitude", "Longitude")
.Column(new DEGREES(new ATN2(
new ColumnArithmatic().SqlFunction(new SIN(new RADIANS(new ColumnArithmatic().Column("Longitude").SUBTRACT().Value(-122.3321))))
.MULTIPLY().SqlFunction(new COS(new RADIANS(new Column("Latitude")))),
new ColumnArithmatic().SqlFunction(new COS(new RADIANS(47.6062))).MULTIPLY()
.SqlFunction(new SIN(new RADIANS(new Column("Latitude")))).SUBTRACT()
.SqlFunction(new SIN(new RADIANS(47.6062))).MULTIPLY()
.SqlFunction(new COS(new RADIANS(new Column("Latitude")))).MULTIPLY()
.SqlFunction(new COS(new RADIANS(new ColumnArithmatic().Column("Longitude").SUBTRACT().Value(-122.3321))))
))
, "BearingInDegrees")
.From("CustomerCoordinates")
)
.Select()
.Columns("CustomerID", "CompanyName", "BearingInDegrees")
.From("CustomerBearing")
.OrderBy(new OrderBy().SetColumnAscending("BearingInDegrees"))
.Build();

Query build by SqlQueryBuilder 3

            
WITH CustomerCoordinates
AS (SELECT CustomerID,
           CompanyName,
           @pMAIN_2507192103022608270 + (ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) * @pMAIN_2507192103022608271) AS Latitude,
           @pMAIN_2507192103022608272 + (ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) * @pMAIN_2507192103022608273) AS Longitude
    FROM Customers),
 CustomerBearing
AS (SELECT CustomerID,
           CompanyName,
           Latitude,
           Longitude,
           DEGREES(ATN2(SIN(RADIANS(Longitude - @pMAIN_2507192103022608274)) * COS(RADIANS(Latitude)), COS(RADIANS(@pMAIN_2507192103022608275)) * SIN(RADIANS(Latitude)) - SIN(RADIANS(@pMAIN_2507192103022608276)) * COS(RADIANS(Latitude)) * COS(RADIANS(Longitude - @pMAIN_2507192103022608277)))) AS BearingInDegrees
    FROM CustomerCoordinates)
SELECT CustomerID,
       CompanyName,
       BearingInDegrees
FROM CustomerBearing
ORDER BY BearingInDegrees ASC;


            
        

Parameters (If used)

Name Value
@pMAIN_2507192103022608270 47.6062
@pMAIN_2507192103022608271 0.1
@pMAIN_2507192103022608272 -122.3321
@pMAIN_2507192103022608273 0.15
@pMAIN_2507192103022608274 -122.3321
@pMAIN_2507192103022608275 47.6062
@pMAIN_2507192103022608276 47.6062
@pMAIN_2507192103022608277 -122.3321

Query Results 3:

  CustomerID CompanyName BearingInDegrees
1 WOLZA Wolski Zajazd 37.37167751997869
2 WILMK Wilman Kala 37.463808573482616
3 WHITC White Clover Markets 37.55582959793371
4 WELLI Wellington Importadora 37.647740735030936
5 WARTH Wartian Herkku 37.73954212676835
6 VINET Vins et alcools Chevalier 37.83123391543123
7 VICTE Victuailles en stock 37.922816243591605
8 VAFFE Vaffeljernet 38.01428925410445
9 TRAIH Trail's Head Gourmet Provisioners 38.105653090103566
10 TRADH Tradição Hipermercados 38.19690789499714
11 TORTU Tortuga Restaurante 38.28805381246427
12 TOMSP Toms Spezialitäten 38.379090986450265
13 THECR The Cracker Box 38.470019561163035
14 THEBI The Big Cheese 38.56083968106896
15 SUPRD Suprêmes délices 38.65155149088873
16 SPLIR Split Rail Beer & Ale 38.742155135593535
17 SPECD Spécialités du monde 38.83265076040081
18 SIMOB Simons bistro 38.92303851077054
19 SEVES Seven Seas Imports 39.013318532401115
20 SAVEA Save-a-lot Markets 39.103490971225305
21 SANTG Santé Gourmet 39.1935559734066
22 ROMEY Romero y tomillo 39.28351368533487
23 RICSU Richter Supermarkt 39.37336425362274
24 RICAR Ricardo Adocicados 39.463107825101716
25 REGGC Reggiani Caseifici 39.552744546817955
26 RATTC Rattlesnake Canyon Grocery 39.64227456602885
27 RANCH Rancho grande 39.731698030198665
28 QUICK QUICK-Stop 39.82101508699513
29 QUEEN Queen Cozinha 39.910225884285275
30 QUEDE Que Delícia 39.99933057013172
31 PRINI Princesa Isabel Vinhos 40.088329292789105
32 PICCO Piccolo und mehr 40.1772222006997
33 PERIC Pericles Comidas clásicas 40.2660094424902
34 PARIS Paris spécialités 40.35469116696769
35 OTTIK Ottilies Käseladen 40.44326752311585
36 OLDWO Old World Delicatessen 40.531738660091456
37 OCEAN Océano Atlántico Ltda. 40.620104727220166
38 NORTS North/South 40.70836587399342
39 MORGK Morgenstern Gesundkost 40.79652225006443
40 MEREP Mère Paillarde 40.88457400524406
41 MAISD Maison Dewey 40.97252128949825
42 MAGAA Magazzini Alimentari Riuniti 41.060364252943025
43 LONEP Lonesome Pine Restaurant 41.14810304584199
44 LINOD LINO-Delicateses 41.235737818602125
45 LILAS LILA-Supermercado 41.323268721769914
46 LETSS Let's Stop N Shop 41.41069590602867
47 LEHMS Lehmanns Marktstand 41.49801952219388
48 LAZYK Lazy K Kountry Store 41.58523972121036
49 LAUGB Laughing Bacchus Wine Cellars 41.67235665414839
50 LAMAI La maison d'Asie 41.75937047220008
51 LACOR La corne d'abondance 41.846281326676376
52 KOENE Königlich Essen 41.93308936900272
53 ISLAT Island Trading 42.01979475071619
54 HUNGO Hungry Owl All-Night Grocers 42.10639762346177
55 HUNGC Hungry Coyote Import Store 42.192898138989
56 HILAA HILARION-Abastos 42.27929644914833
57 HANAR Hanari Carnes 42.36559270588759
58 GROSR GROSELLA-Restaurante 42.451787061249036
59 GREAL Great Lakes Food Market 42.53787966736557
60 GOURL Gourmet Lanchonetes 42.62387067645722
61 GODOS Godos Cocina Típica 42.70976024082825
62 GALED Galería del gastrónomo 42.79554851286302
63 FURIB Furia Bacalhau e Frutos do Mar 42.88123564502348
64 FRANK Frankenversand 42.966821789845255
65 FRANS Franchi S.p.A. 43.05230709993453
66 FRANR France restauration 43.13769172796471
67 FOLKO Folk och fä HB 43.22297582667305
68 FOLIG Folies gourmandes 43.308159548857155
69 FISSA FISSA Fabrica Inter. Salchichas S.A. 43.39324304737284
70 FAMIA Familia Arquibaldo 43.478226475128665
71 ERNSH Ernst Handel 43.5631099850855
72 EASTC Eastern Connection 43.64789373025069
73 DUMON Du monde entier 43.73257786367631
74 DRACD Drachenblut Delikatessen 43.81716253845612
75 WANDK Die Wandernde Kuh 43.901647907720914
76 CONSH Consolidated Holdings 43.98603412463761
77 COMMI Comércio Mineiro 44.07032134240359
78 CHOPS Chop-suey Chinese 44.154509714245464
79 CENTC Centro comercial Moctezuma 44.238599393415214
80 CACTU Cactus Comidas para llevar 44.32259053318647
81 BSBEV B's Beverages 44.40648328685333
82 BOTTM Bottom-Dollar Markets 44.490277807724965
83 BONAP Bon app' 44.57397424912381
84 BOLID Bólido Comidas preparadas 44.65757276438276
85 BLONP Blondesddsl père et fils 44.74107350684044
86 BLAUS Blauer See Delikatessen 44.82447662984122
87 BERGS Berglunds snabbköp 44.90778228672868
88 AROUT Around the Horn 44.99099063084514
89 ANTON Antonio Moreno Taquería 45.07410181552965
90 ANATR Ana Trujillo Emparedados y helados 45.157115994106555
91 ALFKI Alfreds Futterkiste 45.24003331990159