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
|