SQL-запрос с подзапросом, чтобы найти максимальное значение - PullRequest
0 голосов
/ 27 июня 2019

У меня есть две таблицы SQL, которые я хочу отфильтровать по событиям, где максимальное значение одного столбца равно 10. tblRace содержит информацию о гонке и имеет первичный ключ RacePK. tblRaceDetails содержит подробности обо всех участниках гонки и имеет два важных значения для запроса: RaceFK, который является отношением к tblRace, и столбец, в котором каждый участник имеет рейтинг для события.

Более крупный запрос, который я пытаюсь выполнить, состоит в том, чтобы найти всех участников со значением в их столбце Победы, но только там, где раса имеет максимальный рейтинг участника, равный 10. Некоторые расы будут иметь максимальный рейтинг участника только 6, в то время как другие может быть целых 15. Я думаю, я знаю способ сделать это с использованием временных таблиц, но это действительно неэффективно и грязно, поэтому я хотел бы изучить более чистый способ сделать это.

Извиняюсь, если я не объяснил это достаточно ясно. Буду рад предоставить дополнительную информацию, если это поможет.

Код, с которым я работаю в данный момент:

Таблица определений:

`CREATE TABLE [dbo].[tblRace](
    [RacePK] [int] IDENTITY(1,1) NOT NULL,
    [RaceMeetingFK] [int] NOT NULL,
    [RaceNumber] [int] NOT NULL,
    [Dividends] [int] NOT NULL,
    [TrackCondition] [nvarchar](50) NOT NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[tblRaceDetails](
    [RaceDetailsPK] [int] IDENTITY(1,1) NOT NULL,
    [RaceFK] [int] NULL,
    [RaceNum] [int] NULL,
    [HorseNum] [int] NULL,
    [HorseName] [nvarchar](50) NULL,
    [Points] [decimal](7, 4) NULL,
    [Ranking] [int] NULL,
    [ChancePerc] [decimal](7, 4) NULL,
    [Price] [money] NULL,
    [RealOdds] [money] NULL,
    [RealChancePerc] [decimal](7, 4) NULL,
    [Edge] [decimal](7, 4) NULL,
    [Result] [int] NULL,
    [Win] [money] NULL,
    [Place] [money] NULL
) ON [PRIMARY]

Select TrackCondition,
Count(TrackCondition) As TrackConditionCount,
Sum(Win) As Win
Into #WinTable
FROM [Junk].[dbo].[tblRaceDetails]

Inner Join tblRace On tblRaceDetails.RaceFK = tblRace.RacePK
Inner Join tblRaceMeeting On tblRace.RaceMeetingFK = tblRaceMeeting.RaceMeetingPK
Inner Join tblTrack On tblRaceMeeting.TrackFK = tblTrack.TrackPK

Where (Win > 0) **This is where I need to filter on events with a maximum Entrant value of 10**

Group By TrackCondition`

Я не вижу способа прикрепить файл с образцами данных, поэтому мне придется опубликовать встроенный файл сейчас.

Пример данных tblRace RacePK RaceMeetingFK RaceNumber Дивиденды TrackCondition 8 1 1 2 Тяжелый 10 9 1 2 3 Тяжелый 10 10 1 3 3 Тяжелый 10 11 1 4 3 Тяжелый 10 12 1 5 3 Тяжелый 10 13 1 6 3 Тяжелый 10 14 1 7 3 Тяжелый 10 15 2 1 3 Soft 7 16 2 2 3 Soft 7 17 2 3 3 Soft 7 32 4 1 3 Soft 5 33 4 2 3 Soft 5

Пример данных tblRaceDetails RaceDetailsPK RaceFK RaceNum HorseNum HorseName Очки Рейтинг ШансPerc Цена RealOdds RealChancePerc Edge Результат Победа Место 1223 8 1 5 Taliano 420,6900 1 0,3661 2,73 2,40 0,4167 -0,0506 2 0,00 1,35 1224 8 1 7 Заберфельди 256,6100 2 0,2233 4,48 2,90 0,3448 -0,1215 1 2,90 1,50 1225 8 1 2 Ведущее сопрано 192,6200 3 0,1676 5,97 9,00 0,1111 0,0565 6 0,00 0,00 1226 8 1 4 Nicksy Boy 136,4600 4 0,1187 8,42 10,20 0,0980 0,0207 5 0,00 0,00 1227 8 1 1 Загробная жизнь 116.1200 5 0.1010 9.90 13.00 0.0769 0.0241 4 0.00 0.00 1228 8 1 6 Idle Fancy 82,5500 6 0,0718 13,92 18,00 0,0556 0,0163 3 0,00 0,00 1229 9 2 1 Dreams Of Platinum 482,6900 1 0,3139 3,19 2,90 0,3448 -0,0309 6 0,00 0,00 1230 9 2 5 Monkery 300,6100 2 0,1955 5,11 4,25 0,2353 -0,0398 1 4,00 1,45 1231 9 2 9 Fat Impacta 224,6200 3 0,1461 6,84 5,00 0,2000 -0,0539 3 0,00 1,70 1232 9 2 3 Wriggles 190,4600 4 0,1239 8,07 8,10 0,1235 0,0004 5 0,00 0,00 1233 9 2 4 Annalysium 153.1200 5 0.0996 10.04 11.00 0.0909 0.0087 8 0.00 0.00 1234 9 2 6 Sinnamon Lane 132,5500 6 0,0862 11,60 14,20 0,0704 0,0158 4 0,00 0,00 1235 9 2 8 Cosmo Star 66.1700 7 0,0430 23,24 26,00 0,0385 0,0046 2 0,00 4,60 1236 9 2 7 Black Cartel 62,0000 8 0,0403 24,80 61,00 0,0164 0,0239 7 0,00 0,00 1237 10 3 4 Соединение лимона 476,60000 1 0,3145 3,18 2,90 0,3448 -0,0303 1 2,70 1,28 1238 10 3 6 Whicker 306,6100 2 0,2023 4,94 3,35 0,2985 -0,0962 3 0,00 1,35 1239 10 3 1 Эрик Топор 228,6200 3 0,1508 6,63 5,00 0,2000 -0,0492 2 0,00 1,50 1240 10 3 5 Вахини Мисс 188,4600 4 0,1243 8,04 9,50 0,1053 0,0191 6 0,00 0,00 1241 10 3 2 Король Стинга 127.1200 5 0.0839 11.92 12.20 0.0820 0.0019 5 0.00 0.00 1242 10 3 3 Графиня Дельта 122,5500 6 0,0809 12,37 16,00 0,0625 0,0184 7 0,00 0,00 1243 10 3 10 Транслит 74,1700 7 0,0489 20,43 73,00 0,0137 0,0352 4 0,00 0,001244 10 3 7 Jackantezz 65,0000 8 0,0429 23,32 101,00 0,0099 0,0330 8 0,00 0,00 1245 11 4 9 Smart Promise 467,6900 1 0,3331 3,00 1,60 0,6250 -0,2919 6 0,00 0,00 1246 11 4 1 Дизайнер Портрет 280,6100 2 0,1999 5,00 3,40 0,2941 -0,0943 3 0,00 1,14 1247 11 4 2 Frites 225,6200 3 0,1607 6,22 14,20 0,0704 0,0903 5 0,00 0,00 1248 11 4 11 Sunsilk Girl 157.4600 4 0,1121 8,92 17,00 0,0588 0,0533 7 0,00 0,00 1249 11 4 10 Star Flight 126.1200 5 0.0898 11.13 31.00 0.0323 0.0576 4 0.00 0.00 1250 11 4 6 Пипсов N Корон 94,5500 6 0,0673 14,85 34,00 0,0294 0,0379 1 34,00 4,00 1251 11 4 5 Periartie 64.1700 7 0,0457 21,88 111,00 0,0090 0,0367 2 0,00 13,00 1252 11 4 3 Мисс Клео 56,0000 8 0,0399 25,07 201,00 0,0050 0,0349 8 0,00 0,00 1253 12 5 5 Yousay Bolt 529.6900 1 0.3147 3.18 2,20 0,4545 -0,1992 0,00 1,20 1254 12 5 4 Treasure Boss 311.6100 2 0.1851 5.40 7.00 0.1429 0.0423 1 7.00 2.00 1255 12 5 8 Misty Girl 266,6100 3 0,1584 6,31 7,00 0,1429 0,0155 6 0,00 0,00 1256 12 5 1 Pacific Tycoon 187,4600 4 0,1114 8,98 7,50 0,1333 -0,0220 4 0,00 0,00 1257 12 5 3 Reine Happy 186.1200 5 0.1106 9.04 8.50 0.1176 -0.0071 7 0.00 0.00 1258 12 5 2 Big Haz 113,5500 6 0,0675 14,83 17,20 0,0581 0,0093 8 0,00 0,00 1259 12 5 6 Мосс Мое имя 97,0000 7 0,0576 17,35 91,00 0,0110 0,0466 5 0,00 0,00 1260 12 5 10 Kappy Cino 73.1700 8 0,0435 23,01 23,00 0,0435 0,0000 3 0,00 4,40 1261 13 6 4 Nobodys Puppet 444,8100 1 0,2118 4,72 4,00 0,2500 -0,0382 10 0,00 0,00 1262 13 6 11 Хейзелс Дневник 320,9000 2 0,1528 6,54 4,50 0,2222 -0,0694 7 0,00 0,00 1263 13 6 9 Libertys Gift 261,6400 3 0,1246 8,03 6,50 0,1538 -0,0292 6 0,00 0,00 1264 13 6 2 Летающий Кирилл 227,6400 4 0,1084 9,22 6,50 0,1538 -0,0454 2 0,00 2,15 1265 13 6 8 Sonaisali 176.1500 5 0,0839 11,92 17,00 0,0588 0,0251 5 0,00 0,00 1266 13 6 5 Beautiful Bee 161,4100 6 0,0769 13,01 26,50 0,0377 0,0391 1 21,00 4,80 1267 13 6 7 г-н Браун Фокс 155,8600 7 0,0742 13,47 10,00 0,1000 -0,0258 3 0,00 2,80 1268 13 6 3 Наш проект 146,4100 8 0,0697 14,34 26,50 0,0377 0,0320 8 0,00 0,00 1269 13 6 10 Iltextya 125.3500 9 0,0597 16,75 31,00 0,0323 0,0274 9 0,00 0,00 1270 13 6 1 My Zarmidala 103,9000 10 0,0495 20,21 34,00 0,0294 0,0201 11 0,00 0,00 1271 13 6 15 Плохая одержимость 77,9000 11 0,0371 26,96 34,00 0,0294 0,0077 4 0,00 0,00

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...