Plan-of-SQLs Interface FP

Task: Verify the Statement against the Table

Statement: kardinia park was one of three venues where the home team score was higher than the away team score

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 the 'home_team_score' is higher than the 'away_team_score'.

Step 3: Select rows where the 'venue' is 'kardinia park'.

Step 4: Use a `CASE` statement to return TRUE if the number of rows is equal to 1, 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 the 'home_team_score' is higher than the 'away_team_score'.

SQL command for the step:

SELECT * FROM table_sql WHERE home_team_score > away_team_score;
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 the 'venue' is 'kardinia park'.

SQL command for the step:

SELECT * FROM table_sql WHERE venue = 'kardinia park';
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

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

SQL command for the step:

SELECT CASE WHEN COUNT(*) = 1 THEN TRUE ELSE FALSE END AS verification FROM table_sql;
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

Verification:

The statement is TRUE