Plan-of-SQLs Interface TP

Task: Verify the Statement against the Table

Statement: collingwood did not have a home team score higher than that of geelong

Table: 1954 vfl season

home_team home_team_score away_team away_team_score venue crowd date
geelong 13.12 (90) hawthorn 7.6 (48) kardinia park 16870 1954-08-14
collingwood 12.16 (88) south melbourne 13.12 (90) victoria park 18556 1954-08-14
carlton 10.16 (76) essendon 11.14 (80) princes park 29744 1954-08-14
richmond 10.18 (78) melbourne 15.4 (94) punt road oval 24000 1954-08-14
north melbourne 9.14 (68) footscray 9.14 (68) arden street oval 22000 1954-08-14
st kilda 13.14 (92) fitzroy 9.15 (69) junction oval 11500 1954-08-14
Generating plan to answer the query...

Generated steps

Step 1: Order the table by 'home_team_score' in descending order.

Step 2: Select rows where 'home_team' is 'collingwood'.

Step 3: Select rows where 'home_team_score' is greater than or equal to the 'home_team_score' of geelong.

Step 4: Use a `CASE` statement to return TRUE if the number of rows is equal to 0, otherwise return FALSE.

Step 1: Order the table by 'home_team_score' in descending order.

SQL command for the step:

SELECT * FROM table_sql ORDER BY home_team_score DESC;
home_team home_team_score away_team away_team_score venue crowd date
geelong 13.12 (90) hawthorn 7.6 (48) kardinia park 16870 1954-08-14
collingwood 12.16 (88) south melbourne 13.12 (90) victoria park 18556 1954-08-14
carlton 10.16 (76) essendon 11.14 (80) princes park 29744 1954-08-14
richmond 10.18 (78) melbourne 15.4 (94) punt road oval 24000 1954-08-14
north melbourne 9.14 (68) footscray 9.14 (68) arden street oval 22000 1954-08-14
st kilda 13.14 (92) fitzroy 9.15 (69) junction oval 11500 1954-08-14

Step 2: Select rows where 'home_team' is 'collingwood'.

SQL command for the step:

SELECT * FROM table_sql WHERE home_team = 'collingwood';
home_team home_team_score away_team away_team_score venue crowd date
st kilda 13.14 (92) fitzroy 9.15 (69) junction oval 11500 1954-08-14
geelong 13.12 (90) hawthorn 7.6 (48) kardinia park 16870 1954-08-14
collingwood 12.16 (88) south melbourne 13.12 (90) victoria park 18556 1954-08-14
richmond 10.18 (78) melbourne 15.4 (94) punt road oval 24000 1954-08-14
carlton 10.16 (76) essendon 11.14 (80) princes park 29744 1954-08-14
north melbourne 9.14 (68) footscray 9.14 (68) arden street oval 22000 1954-08-14

Step 3: Select rows where 'home_team_score' is greater than or equal to the 'home_team_score' of geelong.

SQL command for the step:

SELECT * FROM table_sql WHERE home_team_score >= (SELECT home_team_score FROM table_sql WHERE team_name = 'geelong');
home_team home_team_score away_team away_team_score venue crowd date
collingwood 12.16 (88) south melbourne 13.12 (90) victoria park 18556 1954-08-14

Step 4: Use a `CASE` statement to return TRUE if the number of rows is equal to 0, otherwise return FALSE.

SQL command for the step:

SELECT CASE WHEN COUNT(*) = 0 THEN TRUE ELSE FALSE END AS verification FROM table_sql;
home_team home_team_score away_team away_team_score venue crowd date

Verification:

The statement is TRUE