#sql-server #bucket
#sql-server #bucket
Вопрос:
Я работаю над решением, которое позволило бы создать 5 сегментов равных продаж для клиентов в регионе. Я попытался использовать цикл while, а также курсор, но безрезультатно. В котором я определяю общий объем продаж, а затем делю продажи на 5, чтобы получить сумму продаж для каждого сегмента.
Например, если общий объем продаж составил 100 000 долларов, размер сегмента будет равен 20 000 долларов. Цикл будет принимать клиентов, начиная с самых низких и заканчивая самыми высокими продажами, и начнет заполнять сегмент 1. как только совокупные продажи для тех клиентов, которые назначены сегменту 2, превысят 20 000 долларов, тот же процесс будет повторен, чтобы назначить оставшихся клиентов в сегмент 3-5.
Вот некоторый код для генерации образца данных:
if object_id ('tempdb..#Customer') is not null
drop table #Customer;
CREATE TABLE #Customer(
CustomerID int
,Region varchar(30)
,Sales money
)
INSERT INTO #Customer Select '1', 'East', '0'
INSERT INTO #Customer Select '2', 'East', '20'
INSERT INTO #Customer Select '3', 'East', '40'
INSERT INTO #Customer Select '4', 'East', '60'
INSERT INTO #Customer Select '5', 'East', '80'
INSERT INTO #Customer Select '6', 'East', '100'
INSERT INTO #Customer Select '7', 'East', '120'
INSERT INTO #Customer Select '8', 'East', '140'
INSERT INTO #Customer Select '9', 'East', '160'
INSERT INTO #Customer Select '10', 'East', '180'
INSERT INTO #Customer Select '11', 'East', '200'
INSERT INTO #Customer Select '12', 'East', '220'
INSERT INTO #Customer Select '13', 'East', '240'
INSERT INTO #Customer Select '14', 'East', '260'
INSERT INTO #Customer Select '15', 'East', '280'
INSERT INTO #Customer Select '16', 'East', '300'
INSERT INTO #Customer Select '17', 'East', '320'
INSERT INTO #Customer Select '18', 'East', '340'
INSERT INTO #Customer Select '19', 'East', '360'
INSERT INTO #Customer Select '20', 'East', '380'
INSERT INTO #Customer Select '21', 'East', '400'
INSERT INTO #Customer Select '22', 'East', '420'
INSERT INTO #Customer Select '23', 'East', '440'
INSERT INTO #Customer Select '24', 'East', '460'
INSERT INTO #Customer Select '25', 'East', '480'
INSERT INTO #Customer Select '26', 'East', '500'
INSERT INTO #Customer Select '27', 'East', '520'
INSERT INTO #Customer Select '28', 'East', '540'
INSERT INTO #Customer Select '29', 'East', '560'
INSERT INTO #Customer Select '30', 'East', '580'
INSERT INTO #Customer Select '31', 'East', '600'
INSERT INTO #Customer Select '32', 'East', '620'
INSERT INTO #Customer Select '33', 'East', '640'
INSERT INTO #Customer Select '34', 'East', '660'
INSERT INTO #Customer Select '35', 'East', '680'
INSERT INTO #Customer Select '36', 'East', '700'
INSERT INTO #Customer Select '37', 'East', '720'
INSERT INTO #Customer Select '38', 'East', '740'
INSERT INTO #Customer Select '39', 'East', '760'
INSERT INTO #Customer Select '40', 'East', '780'
INSERT INTO #Customer Select '41', 'East', '800'
INSERT INTO #Customer Select '42', 'East', '820'
INSERT INTO #Customer Select '43', 'East', '840'
INSERT INTO #Customer Select '44', 'East', '860'
INSERT INTO #Customer Select '45', 'East', '880'
INSERT INTO #Customer Select '46', 'East', '900'
INSERT INTO #Customer Select '47', 'East', '920'
INSERT INTO #Customer Select '48', 'East', '940'
INSERT INTO #Customer Select '49', 'East', '960'
INSERT INTO #Customer Select '50', 'East', '980'
INSERT INTO #Customer Select '51', 'East', '1000'
INSERT INTO #Customer Select '52', 'East', '1020'
INSERT INTO #Customer Select '53', 'East', '1040'
INSERT INTO #Customer Select '54', 'East', '1060'
INSERT INTO #Customer Select '55', 'East', '1080'
INSERT INTO #Customer Select '56', 'East', '1100'
INSERT INTO #Customer Select '57', 'East', '1120'
INSERT INTO #Customer Select '58', 'East', '1140'
INSERT INTO #Customer Select '59', 'East', '1160'
INSERT INTO #Customer Select '60', 'East', '1180'
INSERT INTO #Customer Select '61', 'East', '1200'
INSERT INTO #Customer Select '62', 'East', '1220'
INSERT INTO #Customer Select '63', 'East', '1240'
INSERT INTO #Customer Select '64', 'East', '1260'
INSERT INTO #Customer Select '65', 'East', '1280'
INSERT INTO #Customer Select '66', 'East', '1300'
INSERT INTO #Customer Select '67', 'East', '1320'
INSERT INTO #Customer Select '68', 'East', '1340'
INSERT INTO #Customer Select '69', 'East', '1360'
INSERT INTO #Customer Select '70', 'East', '1380'
INSERT INTO #Customer Select '71', 'East', '1400'
INSERT INTO #Customer Select '72', 'East', '1420'
INSERT INTO #Customer Select '73', 'East', '1440'
INSERT INTO #Customer Select '74', 'East', '1460'
INSERT INTO #Customer Select '75', 'East', '1480'
INSERT INTO #Customer Select '76', 'East', '1500'
INSERT INTO #Customer Select '77', 'East', '1520'
INSERT INTO #Customer Select '78', 'East', '1540'
INSERT INTO #Customer Select '79', 'East', '1560'
INSERT INTO #Customer Select '80', 'East', '1580'
INSERT INTO #Customer Select '81', 'East', '1600'
INSERT INTO #Customer Select '82', 'East', '1620'
INSERT INTO #Customer Select '83', 'East', '1640'
INSERT INTO #Customer Select '84', 'East', '1660'
INSERT INTO #Customer Select '85', 'East', '1680'
INSERT INTO #Customer Select '86', 'East', '1700'
INSERT INTO #Customer Select '87', 'East', '1720'
INSERT INTO #Customer Select '88', 'East', '1740'
INSERT INTO #Customer Select '89', 'East', '1760'
INSERT INTO #Customer Select '90', 'East', '1780'
INSERT INTO #Customer Select '91', 'East', '1800'
INSERT INTO #Customer Select '92', 'East', '1820'
INSERT INTO #Customer Select '93', 'East', '1840'
INSERT INTO #Customer Select '94', 'East', '1860'
INSERT INTO #Customer Select '95', 'East', '1880'
INSERT INTO #Customer Select '96', 'East', '1900'
INSERT INTO #Customer Select '97', 'East', '1920'
INSERT INTO #Customer Select '98', 'East', '1940'
INSERT INTO #Customer Select '99', 'East', '1960'
INSERT INTO #Customer Select '100', 'East', '2980'
Вот логика, которую я использую в настоящее время, которая отлично работает для одного региона, но когда я пытаюсь включить другой регион, логика применяет сегменты, используя общие продажи из обоих регионов, для вычисления сегментов.
if object_id ('tempdb..#rank') is not null
drop table #rank;
create table #rank (
customer_Id int
, region varchar(30)
, sales money
, sales_rank int
, bucket int
);
insert into #rank
select x.*
, row_number() over (order by x.sales desc) as sales_rank
, null as bucket
from #customer x;
declare @region_sales money, @bucket_amt money, @ctr int, @running_total money, @customer_id int, @sales money;
set @region_sales = (select sum(sales) from #customer);
set @bucket_amt = @region_sales / 5;
set @running_total = 0
set @ctr = 1
declare csr cursor forward_only for
select customer_id, sales from #rank order by sales_rank desc;
open csr
fetch next from csr into @customer_id, @sales
while @@FETCH_STATUS = 0
begin
if @running_total <= @bucket_amt
begin
set @running_total = @running_total @sales;
update x set x.bucket = @ctr from #rank x where x.customer_id = @customer_id;
end
else
begin
set @running_total = 0
set @ctr = @ctr 1
update x set x.bucket = @ctr from #rank x where x.customer_id = @customer_id;
end
fetch next from csr into @customer_id, @sales
end
close csr;
deallocate csr;
Как я могу изменить логику для создания сегментов индивидуально для каждого региона?
I am open to any additional methods other than using a cursor as this method can be slow with large volume of data.
Using the same data above and duplicating the records inserted for the East Region and changing the duplicated records to West Region (with the same customers and values) the end result of this logic would produce these results.
select Region, bucket, sum(sales) as Total_Sales from #rank
Group by Region, bucket
Ответ №1:
NTILE is what I think you’re looking for. Try the following code:
if OBJECT_ID(‘tempdb..#Customer’) IS NOT NULL
BEGIN
DROP TABLE #Customer;
END;
CREATE TABLE #Customer
(
CustomerID int,
Region varchar(30),
Sales decimal(18, 2)
);
ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (1, ‘East’, 0); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (2, ‘East’, 20); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (3, ‘Восток’, 40); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (4, ‘Восток’, 60); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (5, ‘Восток’, 80); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (6, ‘East’, 100); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (7, ‘East’, 120); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (8, ‘East’, 140); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (9, ‘East’, 160); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (10, ‘East’, 180); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (11, ‘East’, 200); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (12, ‘East’, 220); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (13, ‘East’, 240); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (14, ‘Восток’, 260); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (15, ‘Восток’, 280); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (16, ‘Восток’, 300); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (17, ‘East’, 320); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (18, ‘East’, 340); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (19, ‘Восток’, 360); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (20, ‘Восток’, 380); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (21, ‘Восток’, 400); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (22, ‘East’, 420); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (23, ‘East’, 440); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (24, ‘East’, 460); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (25, ‘East’, 480); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (26, ‘East’, 500); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (27, ‘East’, 520); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (28, ‘East’, 540); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (29, ‘East’, 560); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (30, ‘Восток’, 580); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (31, ‘Восток’, 600); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (32, ‘Восток’, 620); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (33, ‘East’, 640); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (34, ‘East’, 660); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (35, ‘Восток’, 680); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (36, ‘Восток’, 700); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (37, ‘Восток’, 720); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (38, ‘East’, 740); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (39, ‘East’, 760); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (40, ‘East’, 780); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (41, ‘East’, 800); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (42, ‘East’, 820); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (43, ‘East’, 840); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (44, ‘East’, 860); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (45, ‘East’, 880); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (46, ‘Восток’, 900); ВСТАВИТЬ В ЗНАЧЕНИЯ #Customer(CustomerID, регион, Продажи) (47, ‘Восток’, 920); ВСТАВИТЬ В ЗНАЧЕНИЯ #Customer(CustomerID, регион, продажи) (48, ‘Восток’, 940); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (49, ‘East’, 960); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (50, ‘East’, 980); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (51, ‘Восток’, 1000); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (52, ‘Восток’, 1020); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (53, ‘Восток’, 1040); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (54, ‘East’, 1060); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (55, ‘East’, 1080); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (56, ‘East’, 1100); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (57, ‘East’, 1120); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (58, ‘East’, 1140); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (59, ‘East’, 1160); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (60, ‘East’, 1180); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (61, ‘East’, 1200); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (62, ‘East’, 1220); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (63, ‘East’, 1240); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (64, ‘East’, 1260); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (65, ‘East’, 1280); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (66, ‘Восток’, 1300); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (67, ‘Восток’, 1320); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (68, ‘Восток’, 1340); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (69, ‘East’, 1360); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (70, ‘East’, 1380); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (71, ‘East’, 1400); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (72, ‘East’, 1420); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (73, ‘East’, 1440); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (74, ‘East’, 1460); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (75, ‘East’, 1480); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (76, ‘East’, 1500); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (77, ‘East’, 1520); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (78, ‘East’, 1540); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (79, ‘East’, 1560); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (80, ‘East’, 1580); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (81, ‘Восток’, 1600); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (82, ‘Восток’, 1620); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (83, ‘Восток’, 1640); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (84, ‘East’, 1660); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (85, ‘East’, 1680); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (86, ‘East’, 1700); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (87, ‘East’, 1720); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (88, ‘East’, 1740); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (89, ‘East’, 1760); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (90, ‘East’, 1780); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (91, ‘East’, 1800); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (92, ‘Восток’, 1820); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (93, ‘Восток’, 1840); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (94, ‘East’, 1860); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (95, ‘East’, 1880); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (96, ‘Восток’, 1900); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (97, ‘Восток’, 1920); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (98, ‘Восток’, 1940); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (99, ‘East’, 1960); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (100, ‘East’, 2980);
ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (101, ‘West’, 0); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (102, ‘West’, 20); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (103, ‘Запад’, 40); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (104, ‘West’, 60); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (105, ‘West’, 80); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (106, ‘West’, 100); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (107, ‘West’, 120); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (108, ‘West’, 140); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (109, ‘West’, 160); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (110, ‘West’, 180); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (111, ‘West’, 200); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (112, ‘West’, 220); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (113, ‘West’, 240); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (114, ‘West’, 260); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (115, ‘West’, 280); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (116, ‘West’, 300); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (117, ‘West’, 320); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (118, ‘West’, 340); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (119, ‘Запад’, 360); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (120, ‘West’, 380); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (121, ‘West’, 400); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (122, ‘West’, 420); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (123, ‘West’, 440); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (124, ‘West’, 460); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (125, ‘West’, 480); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (126, ‘West’, 500); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (127, ‘West’, 520); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (128, ‘West’, 540); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (129, ‘West’, 560); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (130, ‘West’, 580); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (131, ‘West’, 600); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (132, ‘West’, 620); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (133, ‘West’, 640); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (134, ‘West’, 660); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (135, ‘Запад’, 680); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (136, ‘West’, 700); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (137, ‘West’, 720); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (138, ‘West’, 740); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (139, ‘West’, 760); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (140, ‘West’, 780); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (141, ‘West’, 800); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (142, ‘West’, 820); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (143, ‘West’, 840); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (144, ‘West’, 860); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (145, ‘West’, 880); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (146, ‘West’, 900); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (147, ‘West’, 920); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (148, ‘West’, 940); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (149, ‘West’, 960); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (150, ‘West’, 980); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (151, ‘Запад’, 1000); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (152, ‘West’, 1020); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (153, ‘West’, 1040); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (154, ‘West’, 1060); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (155, ‘West’, 1080); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (156, ‘West’, 1100); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (157, ‘West’, 1120); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (158, ‘West’, 1140); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (159, ‘West’, 1160); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (160, ‘West’, 1180); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (161, ‘West’, 1200); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (162, ‘West’, 1220); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (163, ‘West’, 1240); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (164, ‘West’, 1260); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (165, ‘West’, 1280); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (166, ‘Запад’, 1300); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (167, ‘West’, 1320); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (168, ‘West’, 1340); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (169, ‘West’, 1360); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (170, ‘West’, 1380); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (171, ‘West’, 1400); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (172, ‘West’, 1420); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (173, ‘West’, 1440); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (174, ‘West’, 1460); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (175, ‘West’, 1480); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (176, ‘West’, 1500); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (177, ‘West’, 1520); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (178, ‘West’, 1540); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (179, ‘West’, 1560); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (180, ‘West’, 1580); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (181, ‘Запад’, 1600); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (182, ‘West’, 1620); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (183, ‘West’, 1640); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (184, ‘West’, 1660); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (185, ‘West’, 1680); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (186, ‘West’, 1700); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (187, ‘West’, 1720); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (188, ‘West’, 1740); ВСТАВИТЬ В #Customer(CustomerID, Region, Sales) ЗНАЧЕНИЯ (189, ‘West’, 1760); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (190, ‘West’, 1780); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (191, ‘West’, 1800); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (192, ‘West’, 1820); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (193, ‘West’, 1840); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (194, ‘West’, 1860); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (195, ‘West’, 1880); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (196, ‘Запад’, 1900); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (197, ‘West’, 1920); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (198, ‘West’, 1940); ВСТАВИТЬ В #Customer(CustomerID, регион, продажи) ЗНАЧЕНИЯ (199, ‘West’, 1960); ВСТАВИТЬ В #Customer(CustomerID, регион, Продажи) ЗНАЧЕНИЯ (200, ‘West’, 2980);
ВЫБЕРИТЕ CustomerID, Region, Sales, NTILE(5) ПОВЕРХ (РАЗДЕЛЕНИЕ ПО регионам ПО порядку продаж) В КАЧЕСТВЕ корзины ИЗ #Customer;
Комментарии:
1. Спасибо, Грег! Я попробовал NTILE, но результаты отличаются от того, что я ищу. Когда я использовал метод cursor, он создает эквивалентные сегменты продаж. Для Восточного региона я получаю сегмент 1 с 20 700 долларов, сегмент 2 с 22 200 долларов, сегмент 3 с 21 900 долларов, сегмент 4 с 22 620 долларов, сегмент 5 с 12 580 долларов. Поскольку логика заполняет каждое из сегментов, пока значение сегмента не превысит одну пятую от общей стоимости продаж. NTILE создает сегменты на основе равномерного распределения клиентов по сравнению с равномерным распределением продаж, поэтому для восточного региона во всех 5 сегментах по 20 клиентов.
2. Понял. Думал, что вы распределяете количество клиентов, а не общий объем продаж для группы клиентов.