POWER SQL function
1. Usage of POWER to find discount percentage of orders.
SQL Server Query 1
WITH CustomerOrderCounts AS (
SELECT
c.CustomerID,
c.CompanyName,
COUNT(o.OrderID) AS NumberOfOrders
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID
GROUP BY c.CustomerID, c.CompanyName
)
SELECT
CustomerID,
CompanyName,
NumberOfOrders,
0.10 * POWER(0.5, NumberOfOrders) AS DiscountPercentage
FROM CustomerOrderCounts
ORDER BY NumberOfOrders DESC;
Create SQL query with SqlQueryBuilder 1
var (sql1, parameters1) = new SqlQueryBuilder()
.WithCTETable(new Table("CustomerOrderCounts"), new SqlQueryBuilder()
.Select()
.Columns("c.CustomerID", "c.CompanyName")
.Column(new COUNT(new Column("o.OrderID")), "NumberOfOrders")
.From("Customers", "c")
.Join(new List<IJoin>()
{
new LEFTJOIN().TableName(new Table("Orders","o"))
.On(new Column("c.CustomerID").Equale(new Column("o.CustomerID")))
})
.GroupBy(new GroupBy(new Column("c.CustomerID"), new Column("c.CompanyName")))
)
.Select()
.Columns("CustomerID", "CompanyName", "NumberOfOrders")
.Column(new ColumnArithmatic(0.10).MULTIPLY(new POWER(0.5, new Column("NumberOfOrders"))), "DiscountPercentage")
.From("CustomerOrderCounts")
.OrderBy(new OrderBy().SetColumnDescending("NumberOfOrders"))
.Build();
Query build by SqlQueryBuilder 1
WITH CustomerOrderCounts
AS (SELECT c.CustomerID,
c.CompanyName,
COUNT(o.OrderID) AS NumberOfOrders
FROM Customers AS c
LEFT OUTER JOIN
Orders AS o
ON c.CustomerID = o.CustomerID
GROUP BY c.CustomerID, c.CompanyName)
SELECT CustomerID,
CompanyName,
NumberOfOrders,
@pMAIN_2507192031222255270 * POWER(@pMAIN_2507192031222255271, NumberOfOrders) AS DiscountPercentage
FROM CustomerOrderCounts
ORDER BY NumberOfOrders DESC;
Parameters (If used)
Name |
Value |
@pMAIN_2507192031222255270 |
0.1 |
@pMAIN_2507192031222255271 |
0.5 |
Query Results 1:
|
CustomerID |
CompanyName |
NumberOfOrders |
DiscountPercentage |
1 |
SAVEA
|
Save-a-lot Markets
|
31
|
4.656612873077393E-11
|
2 |
ERNSH
|
Ernst Handel
|
30
|
9.313225746154786E-11
|
3 |
QUICK
|
QUICK-Stop
|
28
|
3.7252902984619143E-10
|
4 |
HUNGO
|
Hungry Owl All-Night Grocers
|
19
|
1.9073486328125E-07
|
5 |
FOLKO
|
Folk och fä HB
|
19
|
1.9073486328125E-07
|
6 |
HILAA
|
HILARION-Abastos
|
18
|
3.814697265625E-07
|
7 |
BERGS
|
Berglunds snabbköp
|
18
|
3.814697265625E-07
|
8 |
RATTC
|
Rattlesnake Canyon Grocery
|
18
|
3.814697265625E-07
|
9 |
BONAP
|
Bon app'
|
17
|
7.62939453125E-07
|
10 |
FRANK
|
Frankenversand
|
15
|
3.0517578125E-06
|
11 |
LEHMS
|
Lehmanns Marktstand
|
15
|
3.0517578125E-06
|
12 |
WARTH
|
Wartian Herkku
|
15
|
3.0517578125E-06
|
13 |
WHITC
|
White Clover Markets
|
14
|
6.103515625E-06
|
14 |
LAMAI
|
La maison d'Asie
|
14
|
6.103515625E-06
|
15 |
KOENE
|
Königlich Essen
|
14
|
6.103515625E-06
|
16 |
LILAS
|
LILA-Supermercado
|
14
|
6.103515625E-06
|
17 |
HANAR
|
Hanari Carnes
|
14
|
6.103515625E-06
|
18 |
BOTTM
|
Bottom-Dollar Markets
|
14
|
6.103515625E-06
|
19 |
AROUT
|
Around the Horn
|
13
|
1.220703125E-05
|
20 |
MEREP
|
Mère Paillarde
|
13
|
1.220703125E-05
|
21 |
QUEEN
|
Queen Cozinha
|
13
|
1.220703125E-05
|
22 |
REGGC
|
Reggiani Caseifici
|
12
|
2.44140625E-05
|
23 |
LINOD
|
LINO-Delicateses
|
12
|
2.44140625E-05
|
24 |
SUPRD
|
Suprêmes délices
|
12
|
2.44140625E-05
|
25 |
VAFFE
|
Vaffeljernet
|
11
|
4.8828125E-05
|
26 |
RICAR
|
Ricardo Adocicados
|
11
|
4.8828125E-05
|
27 |
BLONP
|
Blondesddsl père et fils
|
11
|
4.8828125E-05
|
28 |
GREAL
|
Great Lakes Food Market
|
11
|
4.8828125E-05
|
29 |
GODOS
|
Godos Cocina Típica
|
10
|
9.765625E-05
|
30 |
BSBEV
|
B's Beverages
|
10
|
9.765625E-05
|
31 |
RICSU
|
Richter Supermarkt
|
10
|
9.765625E-05
|
32 |
PICCO
|
Piccolo und mehr
|
10
|
9.765625E-05
|
33 |
MAGAA
|
Magazzini Alimentari Riuniti
|
10
|
9.765625E-05
|
34 |
OLDWO
|
Old World Delicatessen
|
10
|
9.765625E-05
|
35 |
OTTIK
|
Ottilies Käseladen
|
10
|
9.765625E-05
|
36 |
ISLAT
|
Island Trading
|
10
|
9.765625E-05
|
37 |
VICTE
|
Victuailles en stock
|
10
|
9.765625E-05
|
38 |
TORTU
|
Tortuga Restaurante
|
10
|
9.765625E-05
|
39 |
WANDK
|
Die Wandernde Kuh
|
10
|
9.765625E-05
|
40 |
WELLI
|
Wellington Importadora
|
9
|
0.0001953125
|
41 |
SPLIR
|
Split Rail Beer & Ale
|
9
|
0.0001953125
|
42 |
QUEDE
|
Que Delícia
|
9
|
0.0001953125
|
43 |
SEVES
|
Seven Seas Imports
|
9
|
0.0001953125
|
44 |
GOURL
|
Gourmet Lanchonetes
|
9
|
0.0001953125
|
45 |
FURIB
|
Furia Bacalhau e Frutos do Mar
|
8
|
0.000390625
|
46 |
EASTC
|
Eastern Connection
|
8
|
0.000390625
|
47 |
CHOPS
|
Chop-suey Chinese
|
8
|
0.000390625
|
48 |
LONEP
|
Lonesome Pine Restaurant
|
8
|
0.000390625
|
49 |
MAISD
|
Maison Dewey
|
7
|
0.00078125
|
50 |
SIMOB
|
Simons bistro
|
7
|
0.00078125
|
51 |
BLAUS
|
Blauer See Delikatessen
|
7
|
0.00078125
|
52 |
ANTON
|
Antonio Moreno Taquería
|
7
|
0.00078125
|
53 |
FAMIA
|
Familia Arquibaldo
|
7
|
0.00078125
|
54 |
WILMK
|
Wilman Kala
|
7
|
0.00078125
|
55 |
WOLZA
|
Wolski Zajazd
|
7
|
0.00078125
|
56 |
TOMSP
|
Toms Spezialitäten
|
6
|
0.0015625
|
57 |
SANTG
|
Santé Gourmet
|
6
|
0.0015625
|
58 |
TRADH
|
Tradição Hipermercados
|
6
|
0.0015625
|
59 |
FRANS
|
Franchi S.p.A.
|
6
|
0.0015625
|
60 |
ALFKI
|
Alfreds Futterkiste
|
6
|
0.0015625
|
61 |
DRACD
|
Drachenblut Delikatessen
|
6
|
0.0015625
|
62 |
CACTU
|
Cactus Comidas para llevar
|
6
|
0.0015625
|
63 |
PERIC
|
Pericles Comidas clásicas
|
6
|
0.0015625
|
64 |
OCEAN
|
Océano Atlántico Ltda.
|
5
|
0.003125
|
65 |
PRINI
|
Princesa Isabel Vinhos
|
5
|
0.003125
|
66 |
RANCH
|
Rancho grande
|
5
|
0.003125
|
67 |
ROMEY
|
Romero y tomillo
|
5
|
0.003125
|
68 |
MORGK
|
Morgenstern Gesundkost
|
5
|
0.003125
|
69 |
COMMI
|
Comércio Mineiro
|
5
|
0.003125
|
70 |
HUNGC
|
Hungry Coyote Import Store
|
5
|
0.003125
|
71 |
FOLIG
|
Folies gourmandes
|
5
|
0.003125
|
72 |
GALED
|
Galería del gastrónomo
|
5
|
0.003125
|
73 |
VINET
|
Vins et alcools Chevalier
|
5
|
0.003125
|
74 |
THEBI
|
The Big Cheese
|
4
|
0.00625
|
75 |
DUMON
|
Du monde entier
|
4
|
0.00625
|
76 |
ANATR
|
Ana Trujillo Emparedados y helados
|
4
|
0.00625
|
77 |
LACOR
|
La corne d'abondance
|
4
|
0.00625
|
78 |
LETSS
|
Let's Stop N Shop
|
4
|
0.00625
|
79 |
SPECD
|
Spécialités du monde
|
4
|
0.00625
|
80 |
LAUGB
|
Laughing Bacchus Wine Cellars
|
3
|
0.0125
|
81 |
NORTS
|
North/South
|
3
|
0.0125
|
82 |
BOLID
|
Bólido Comidas preparadas
|
3
|
0.0125
|
83 |
CONSH
|
Consolidated Holdings
|
3
|
0.0125
|
84 |
FRANR
|
France restauration
|
3
|
0.0125
|
85 |
THECR
|
The Cracker Box
|
3
|
0.0125
|
86 |
TRAIH
|
Trail's Head Gourmet Provisioners
|
3
|
0.0125
|
87 |
GROSR
|
GROSELLA-Restaurante
|
2
|
0.025
|
88 |
LAZYK
|
Lazy K Kountry Store
|
2
|
0.025
|
89 |
CENTC
|
Centro comercial Moctezuma
|
1
|
0.05
|
90 |
FISSA
|
FISSA Fabrica Inter. Salchichas S.A.
|
0
|
0.1
|
91 |
PARIS
|
Paris spécialités
|
0
|
0.1
|