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