Parameter Types¶
The SDQL data types are:
- Number (points, first downs, home runs, etc.)
 - String (team, division, conference, etc.)
 - List (quarter scores, inning runs, umpires, etc.)
 - Date (date)
 - Line (MLB line, run line, etc.)
 
number¶
SDQL database numbers are Python integers and Python floats. Number parameters can be combined using the usual math symbols: +, -, / and * (for multiplication).
- To see the date and team name for NFL teams after they had more than 10 yards per pass, use the SDQL:
 - date, team @ p:passing yards > 10 * p:passes
 
string¶
Database strings have all of the expected properties of Python strings.
- To find all NBA team names that do not end in an s, use the SDQL:
 - Unique(team) @ team[-1] != ‘s’
 - To find all MLB teams with a two-word name, use the SDQL:
 - U(team) @ len(team.split()) = 2
 Unique (abbreviated U) is an example of an SDQL aggregator (see Aggregators) and len is a Python built-in.
list¶
Database lists have all of the expected properties of Python lists. The contents of lists are accessed by offset (starting at 0) using square brackets.
- To see the date, team and opponent for MLB teams that scored five runs in the first inning, use the SDQL:
 - date, team, o:team @ inning runs[0] = 5
 The list indexing starts at 0, so inning runs[0] gives runs in the first inning and inning runs[8] gives runs in the ninth inning.
- To see the date, team and opponent for MLB teams that scored a total of ten runs in the first three innings, use the SDQL:
 - date, team, o:team @ sum(inning runs[:3]) = 10
 sum is a Python built-in method and used here to add up the first three values of the inning runs list.
- Pythonic list splicing works both ways: to find non-extra inning MLB games in which the team scored one run in each of the last four innings, use the SDQL:
 - date, team @ inning runs[-4:] = [1,1,1,1] and len(inning runs)=9
 
date¶
The date parameter has its own type to allow convenient addition and subtraction. A date minus a date is a number while a date plus or minus a number is a date.
- To see how NBA teams have performed when looking ahead to at least three days off, use the SDQL:
 - S(points>o:points) as ‘Wins’,S(points<o:points) as ‘Losses’@n:date - date > 3
 - To see how NFL teams have done against the line when they have more than a week of rest, use the SDQL:
 - S(points+line>o:points) as ‘ATS Wins’,S(points+line<o:points) as ‘ATS Losses’@date - p:date > 7