sql success ch03

257
1 SQL Success Chapter 3 slides Stéphane Faroult

Upload: roughsea

Post on 03-Jul-2015

71 views

Category:

Education


0 download

DESCRIPTION

An SQL course

TRANSCRIPT

Page 1: Sql success ch03

1

SQL Success

Chapter 3 slides

Stéphane Faroult

Page 2: Sql success ch03

2

select * from tablename

Page 3: Sql success ch03

3

select * from movies

Page 4: Sql success ch03

4

Page 5: Sql success ch03

5

All columns

Page 6: Sql success ch03

6

variable1

variable2

variable3

Row Data

Page 7: Sql success ch03

7

select movie_id, title, year_released, country_code from movies

Page 8: Sql success ch03

8

select * from table

print table

Page 9: Sql success ch03

9

Restriction

Page 10: Sql success ch03

10

Restriction

Page 11: Sql success ch03

11

Restriction

Page 12: Sql success ch03

12

Restriction

Page 13: Sql success ch03

13

select * from movies

Page 14: Sql success ch03

14

select * from movies

where ...

Page 15: Sql success ch03

15

where country = 'us' select * from movies

Page 16: Sql success ch03

16

where country = 'us' select * from movies

Page 17: Sql success ch03

17

where country = 'us' select * from movies

Page 18: Sql success ch03

18

where country = 'us' select * from movies

Page 19: Sql success ch03

19

'constant'

Page 20: Sql success ch03

20

column

Page 21: Sql success ch03

21

Jaws where title =

Page 22: Sql success ch03

22

Jaws where title =

Page 23: Sql success ch03

23

'Jaws' where title =

Page 24: Sql success ch03

24

Movies

Page 25: Sql success ch03

25

Movies

Page 26: Sql success ch03

26

US Movies

Page 27: Sql success ch03

27

select * from movies where country = 'us'

Page 28: Sql success ch03

28

select * from movies where country = 'us'

select * from (select * from movies where country = 'us') us_movies where year_released between 1940 and 1949

Page 29: Sql success ch03

29

ALL MOVIES

29

Page 30: Sql success ch03

30

US MOVIES

30

Page 31: Sql success ch03

31

US MOVIES, 1940s

31

Page 32: Sql success ch03

32

select * from (select * from movies where year_released between 1940 and 1949) movies_from_the_1940s where country = 'us'

Page 33: Sql success ch03

33

select * from movies where country = 'us' and year_released between 1940 and 1949

Page 34: Sql success ch03

34

select * from movies where country = 'us' and year_released between 1940 and 1949

or

Page 35: Sql success ch03

35

select * from movies where country = 'us' and year_released between 1940 and 1949

or not

Page 36: Sql success ch03

36

select * from movies where country = 'us' or country = 'gb'

Page 37: Sql success ch03

37

and > or

Page 38: Sql success ch03

38

and > or

2 + 3 * 4

Page 39: Sql success ch03

39

and > or

2 + 3 * 4 3 * 4

Page 40: Sql success ch03

40

and > or

2 + 3 * 4

12

3 * 4

Page 41: Sql success ch03

41

2 + 12

and > or

2 + 3 * 4

12

3 * 4

Page 42: Sql success ch03

42

2 + 12

and > or

2 + 3 * 4

14

Page 43: Sql success ch03

43

where country = 'us' or country = 'gb' and year_released between 1940 and 1949

Page 44: Sql success ch03

44

where country = 'us' or country = 'gb' and year_released between 1940 and 1949

country = 'gb' and year_released between 1940 and 1949

Page 45: Sql success ch03

45

Movies

Page 46: Sql success ch03

46

Movies

1940s

Page 47: Sql success ch03

47

where (country = 'us' or country = 'gb') and year_released between 1940 and 1949

Page 48: Sql success ch03

48

French movies from the 1940s

plus

American movies from the 1950s

Page 49: Sql success ch03

49

select * from movies where (country = 'fr' and year_released between 1940 and 1949) or (country = 'us' and year_released between 1950 and 1959)

Page 50: Sql success ch03

50

=

Page 51: Sql success ch03

51

=

<> or !=

Page 52: Sql success ch03

52

=

<= <

<> or !=

Page 53: Sql success ch03

53

=

<= <

>

<> or !=

>=

Page 54: Sql success ch03

54

2 < 10

Page 55: Sql success ch03

55

2 < 10

'2' < '10'

Page 56: Sql success ch03

56

2 < 10

'2' < '10'

Page 57: Sql success ch03

57

2 < 10

'2' < '10'

'2-JUN-1883'>'1-DEC-2056'

Page 58: Sql success ch03

58

2 < 10

'2' < '10'

'2-JUN-1883'>'1-DEC-2056'

As strings!

Page 59: Sql success ch03

59

DD/MM/YYYY

Page 60: Sql success ch03

60

DD/MM/YYYY

MM/DD/YYYY

Page 61: Sql success ch03

61

Convert EXPLICITLY!

Page 62: Sql success ch03

62

where issued = <some date>

Page 63: Sql success ch03

63

where issued = <some date>

Flickr:Yoppy & Rudolf Schuba

Page 64: Sql success ch03

64

where issued = <some date>

Flickr:Yoppy & Rudolf Schuba

Page 65: Sql success ch03

65

Page 66: Sql success ch03

66

Page 67: Sql success ch03

67

where issued >= and issued <=

Page 68: Sql success ch03

68

<Monday 00:00:00> <Friday 00:00:00>

where issued >= and issued <=

Page 69: Sql success ch03

69

<Monday 00:00:00> <Friday 00:00:00>

where issued >= and issued <=

Page 70: Sql success ch03

70

Sun Mon Tue Wed Thu Fri Sat

40

41

42

43

44

45

27 28 29 30 1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 31

1 2 3 4 5 6 7

Page 71: Sql success ch03

71

Sun Mon Tue Wed Thu Fri Sat

40

41

42

43

44

45

27 28 29 30 1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 31

1 2 3 4 5 6 7

Page 72: Sql success ch03

72

year_released between 1940 and 1949

Page 73: Sql success ch03

73

year_released between 1940 and 1949

year_released >= 1940 and year_released <= 1949

Page 74: Sql success ch03

74

where (country = 'us' or country = 'gb') and year_released between 1940 and 1949

Page 75: Sql success ch03

75

where country in ('us', 'gb') and year_released between 1940 and 1949

where (country = 'us' or country = 'gb') and year_released between 1940 and 1949

Page 76: Sql success ch03

76

country not in ('us', 'gb')

Page 77: Sql success ch03

77

like

Page 78: Sql success ch03

78

like

%

Page 79: Sql success ch03

79

like

% _

Page 80: Sql success ch03

80

select * from movies where title not like '%A%' and title not like '%a%'

Page 81: Sql success ch03

81

select * from movies where upper(title) not like '%A%'

Page 82: Sql success ch03

82

select * from movies where upper(title) not like '%A%'

Page 83: Sql success ch03

83 Flickr:Daniel Moyle 83

Page 84: Sql success ch03

84

if (ptr == NULL) {

Page 85: Sql success ch03

85

if (ptr == NULL) {

Page 86: Sql success ch03

86

NULL in SQL is NOT a value …

Page 87: Sql success ch03

87

where column_name = null

Page 88: Sql success ch03

88

where column_name = null

Page 89: Sql success ch03

89

where column_name <> null

Page 90: Sql success ch03

90

where column_name <> null

Page 91: Sql success ch03

91

where column_name is null

Page 92: Sql success ch03

92

where column_name is null

where column_name is not null

Page 93: Sql success ch03

93

Who are the people in the database who are alive?

Page 94: Sql success ch03

94

Page 95: Sql success ch03

95

Page 96: Sql success ch03

96

select title, year_released from movies where country = 'us'

Page 97: Sql success ch03

97

databases - +

Page 98: Sql success ch03

98

databases -

schemas +

Page 99: Sql success ch03

99

databases -

schemas +

tables +

-

Page 100: Sql success ch03

100

databases -

schemas +

tables +

columns +

-

-

Page 101: Sql success ch03

101

desc movies;

Page 102: Sql success ch03

102

desc movies;

describe table movies

Page 103: Sql success ch03

103

desc movies;

describe table movies

\d movies

Page 104: Sql success ch03

104

desc movies;

describe table movies

\d movies

.schema movies

Page 105: Sql success ch03

105

compute

Page 106: Sql success ch03

106

compute

derive

Page 107: Sql success ch03

107 Flickr: Etsuko Nakamura

Page 108: Sql success ch03

108 Flickr: Etsuko Nakamura

Page 109: Sql success ch03

109

'hello' ' world' +

Page 110: Sql success ch03

110

'hello' ' world' ||

Page 111: Sql success ch03

111

concat( , ) 'hello' ' world'

Page 112: Sql success ch03

112

select title || ' was released in ' || year_released movie_release from movies where country = 'us'

Page 113: Sql success ch03

113

select title || ' was released in ' || year_released movie_release from movies where country = 'us'

Page 114: Sql success ch03

114

select title + ' was released in ' + cast(year_released as varchar) movie_release from movies where country = 'us'

Page 115: Sql success ch03

115

select concat(title, ' was released in ', year_released) movie_release from movies where country = 'us'

Page 116: Sql success ch03

116

people

Age of people alive?

Page 117: Sql success ch03

117

people born died

Age of people alive?

Page 118: Sql success ch03

118

Alive

Page 119: Sql success ch03

119

died

Alive is null

Page 120: Sql success ch03

120

died

Alive is null

Age

Page 121: Sql success ch03

121

died

Alive is null

Age born <this year> -

Page 122: Sql success ch03

122

select from some_table where some_column = some_user_input

column1, ...

Page 123: Sql success ch03

123

select from some_table where some_column = some_user_input

f(column1), ...

Page 124: Sql success ch03

124

select from some_table where some_column = some_user_input

f(column1), ...

Page 125: Sql success ch03

125

select from some_table where some_column = f(some_user_input)

column1, ...

Page 126: Sql success ch03

126

select from some_table where f(some_column) = some_user_input

column1, ...

Page 127: Sql success ch03

127 Flickr:Tony Austin

case end

Page 128: Sql success ch03

128

Y

n

color case upper(color) when 'Y' then 'Color' when 'N' then 'B&W' else '?' end as color, ...

Page 129: Sql success ch03

129

Y

n

color case upper(color) when 'Y' then 'Color' when 'N' then 'B&W' else '?' end as color, ...

Page 130: Sql success ch03

130

Y

n

color case upper(color) when 'Y' then 'Color' when 'N' then 'B&W' else '?' end as color, ...

Color

Page 131: Sql success ch03

131

case upper(color) when 'Y' then 'Color' when 'N' then 'B&W' else '?' end as color, ...

Y

n

color

Color

Page 132: Sql success ch03

132

case upper(color) when 'Y' then 'Color' when 'N' then 'B&W' else '?' end as color, ...

Y

n

color

Color

?

Page 133: Sql success ch03

133

case upper(color) when 'Y' then 'Color' when 'N' then 'B&W' else '?' end as color, ...

Y

n

color

Color

B&W

?

Page 134: Sql success ch03

134

case upper(color) when 'Y' then 'Color' when 'N' then 'B&W' else '?' end as color, ...

Y

n

color

Color

B&W

?

Page 135: Sql success ch03

135

Page 136: Sql success ch03

136

case column_name when null then end

Page 137: Sql success ch03

137

case column_name when null then end

Page 138: Sql success ch03

138

case upper(color) when 'Y' then 'Color' when 'N' then 'B&W' else '?' end as color,

Page 139: Sql success ch03

139

when 1929 then 'passed away'

case died when 1920 then 'passed away' when 1921 then 'passed away'

when 1922 then 'passed away'

when 1923 then 'passed away'

when 1924 then 'passed away'

when 1925 then 'passed away'

when 1926 then 'passed away'

when 1927 then 'passed away'

when 1928 then 'passed away'

Page 140: Sql success ch03

140

case when died is null then 'alive and kicking' else 'passed away' end as status

died is null

Page 141: Sql success ch03

141

Flickr:Sanath Kumar

Some useful functions

more in appendix B ...

Page 142: Sql success ch03

142

round( )

Page 143: Sql success ch03

143

round(

trunc(

)

)

Page 144: Sql success ch03

144

round(

trunc( )

3 3.141592, 0)

Page 145: Sql success ch03

145

round(

trunc( 3.141592)

3

3

3.141592, 0)

Page 146: Sql success ch03

146

3.141592, 3) round(

trunc( 3.141592)

3.142

3

Page 147: Sql success ch03

147

3.141592, 3)

3.141592, 3) round(

trunc(

3.142

3.141

Page 148: Sql success ch03

148

upper(), lower()

Page 149: Sql success ch03

149

substr(

upper(), lower()

)

Page 150: Sql success ch03

150

substr(

upper(), lower()

'Citizen Kane', 5, 3)

Page 151: Sql success ch03

151

substr(

trim(

upper(), lower()

)

)

Page 152: Sql success ch03

152

substr(

trim(

upper(), lower()

)

' Oops ') 'Oops'

Page 153: Sql success ch03

153

substr(

trim(

replace(

upper(), lower()

)

)

)

Page 154: Sql success ch03

154

'Sheep', 'ee', 'i')

substr(

trim(

replace(

upper(), lower()

)

)

'Ship'

Page 155: Sql success ch03

155

upper(), lower()

Page 156: Sql success ch03

156

substring(

upper(), lower()

)

Page 157: Sql success ch03

157

substring(

upper(), lower()

'Citizen Kane', 5, 3)

Page 158: Sql success ch03

158

substring(

ltrim(

upper(), lower()

)

)

Page 159: Sql success ch03

159

substring(

ltrim(

upper(), lower()

)

' Oops ') 'Oops '

Page 160: Sql success ch03

160

substring(

ltrim(

upper(), lower()

)

' Oops ') 'Oops '

rtrim()

Page 161: Sql success ch03

161

substring(

ltrim(

replace(

upper(), lower()

)

)

)

rtrim()

Page 162: Sql success ch03

162

'Sheep', 'ee', 'i')

substring(

ltrim(

replace(

upper(), lower()

)

)

rtrim()

'Ship'

Page 163: Sql success ch03

163

Current date

Page 164: Sql success ch03

164

MARCH FEBRUARY

Current date

Date Arithmetic

Page 165: Sql success ch03

165

MARCH

Current date

Date Arithmetic

+ 1 month

+ 30 days

Page 166: Sql success ch03

166

dateadd(month, 1, date_col)

Page 167: Sql success ch03

167

dateadd(month, 1, date_col)

date_col + 1 month

Page 168: Sql success ch03

168

dateadd(month, 1, date_col)

date_col + 1 month

date_col + interval'1 month'

Page 169: Sql success ch03

169

dateadd(month, 1, date_col)

date_col + 1 month

date_col + interval'1 month'

date_add(date_col, interval 1 month)

Page 170: Sql success ch03

170

dateadd(month, 1, date_col)

date_col + 1 month

date_col + interval'1 month'

date_add(date_col, interval 1 month)

add_months(date_col, 1)

Page 171: Sql success ch03

171

dateadd(month, 1, date_col)

date_col + 1 month

date_col + interval'1 month'

date_add(date_col, interval 1 month)

add_months(date_col, 1)

date_col + decimal_number

Page 172: Sql success ch03

172

dateadd(month, 1, date_col)

date_col + 1 month

date_col + interval'1 month'

date_add(date_col, interval 1 month)

add_months(date_col, 1)

date_col + decimal_number

date(date_col, '1 month')

Page 173: Sql success ch03

173

'28-DEC-1895'

Page 174: Sql success ch03

174

'28-DEC-1895'

Page 175: Sql success ch03

175

'28-DEC-1895'

DBMS date

Page 176: Sql success ch03

176

'12/28/1895'

DBMS date

Page 177: Sql success ch03

177

Page 178: Sql success ch03

178

cast( as )

Page 179: Sql success ch03

179

y z x

Page 180: Sql success ch03

180

(x + y)

z

Page 181: Sql success ch03

181

(x + y)

z

Page 182: Sql success ch03

182

No duplicates

Page 183: Sql success ch03

183

No duplicates

Identifier

Page 184: Sql success ch03

184

select country from movies

Page 185: Sql success ch03

185

Page 186: Sql success ch03

186

Page 187: Sql success ch03

187

distinct

Page 188: Sql success ch03

188

distinct

select distinct country from movies

Page 189: Sql success ch03

189

Aggregate functions

Page 190: Sql success ch03

190

select country, year_released, title from movies

Page 191: Sql success ch03

191

us 1942 Casablanca

us 1990 Goodfellas

ru 1925 Bronenosets Potyomkin

us 1982 Blade Runner

us 1977 Annie Hall

hk 1986 Ying hung boon sik

in 1975 Sholay

us 1954 On The Waterfront

gb 1962 Lawrence Of Arabia

gb 1949 The Third Man

it 1948 Ladri di biciclette

us 1941 Citizen Kane

de 1985 Das Boot

se 1957 Det sjunde inseglet

fr 1997 Le cinquième élément

it 1966 Il buono, il brutto, il cattivo

jp 1954 Shichinin no Samurai

in 1955 Pather Panchali

nz 2001 The Lord of the Rings

fr 1946 La belle et la bête

...

select country, year_released, title from movies

Page 192: Sql success ch03

192

de 1985 Das Boot

fr 1997 Le cinquième élément

fr 1946 La belle et la bête

fr 1942 Les Visiteurs du Soir

gb 1962 Lawrence Of Arabia

gb 1949 The Third Man

hk 1986 Ying hung boon sik

in 1975 Sholay

in 1955 Pather Panchali

it 1948 Ladri di biciclette

it 1966 Il buono, il brutto, il cattivo

jp 1954 Shichinin no Samurai

nz 2001 The Lord of the Rings

ru 1925 Bronenosets Potyomkin

se 1957 Det sjunde inseglet

us 1942 Casablanca

us 1990 Goodfellas

us 1982 Blade Runner

us 1977 Annie Hall

us 1954 On The Waterfront

...

select country, year_released, title from movies

Page 193: Sql success ch03

193

de 1985 Das Boot

fr 1997 Le cinquième élément

fr 1946 La belle et la bête

fr 1942 Les Visiteurs du Soir

gb 1962 Lawrence Of Arabia

gb 1949 The Third Man

hk 1986 Ying hung boon sik

in 1975 Sholay

in 1955 Pather Panchali

it 1948 Ladri di biciclette

it 1966 Il buono, il brutto, il cattivo

jp 1954 Shichinin no Samurai

nz 2001 The Lord of the Rings

ru 1925 Bronenosets Potyomkin

se 1957 Det sjunde inseglet

us 1942 Casablanca

us 1990 Goodfellas

us 1982 Blade Runner

us 1977 Annie Hall

us 1954 On The Waterfront

...

select country, year_released, title from movies

Page 194: Sql success ch03

194

group by

Page 195: Sql success ch03

195

group by

select country, count(*) number_of_movies from movies group by country

count(*)

Page 196: Sql success ch03

196

group by

select country, count(*) number_of_movies from movies group by country

country

Page 197: Sql success ch03

197

group by

select country, count(*) number_of_movies from movies group by country

country

Page 198: Sql success ch03

198

de 1985 Das Boot

fr 1997 Le cinquième élément

fr 1946 La belle et la bête

fr 1942 Les Visiteurs du Soir

gb 1962 Lawrence Of Arabia

gb 1949 The Third Man

hk 1986 Ying hung boon sik

in 1975 Sholay

in 1955 Pather Panchali

it 1948 Ladri di biciclette

it 1966 Il buono, il brutto, il cattivo

jp 1954 Shichinin no Samurai

nz 2001 The Lord of the Rings

ru 1925 Bronenosets Potyomkin

se 1957 Det sjunde inseglet

us 1942 Casablanca

us 1990 Goodfellas

us 1982 Blade Runner

us 1977 Annie Hall

us 1954 On The Waterfront

...

select country, year_released, title from movies

1

3

2

1

2

2

1 1

1 1

17

Page 199: Sql success ch03

199

select country, year_released, count(*) number_of_movies from movies group by country, year_released

Page 200: Sql success ch03

200

select country, year_released, count(*) number_of_movies from movies group by country, year_released

Page 201: Sql success ch03

201

select count(*) number_of_movies from movies

Page 202: Sql success ch03

202

where

Page 203: Sql success ch03

203

where

Page 204: Sql success ch03

204

where

Page 205: Sql success ch03

205

where

Page 206: Sql success ch03

206

where

Page 207: Sql success ch03

207

distinct, group by

Page 208: Sql success ch03

208

distinct, group by

Page 209: Sql success ch03

209

distinct, group by

Page 210: Sql success ch03

210

distinct, group by

Page 211: Sql success ch03

211

distinct, group by

Page 212: Sql success ch03

212

count(*)

min(

max(

avg(

count(col)

col)

col)

col)

Page 213: Sql success ch03

213

Earliest release year by country?

Page 214: Sql success ch03

214

select country, min(year_released) oldest_movie from movies group by country

Earliest release year by country?

Page 215: Sql success ch03

215

select country, min(year_released) oldest_movie from movies group by country

Page 216: Sql success ch03

216

select country, min(year_released) oldest_movie from movies group by country

select * from ( ) earliest_movies_per_country where oldest_movie < 1940

Page 217: Sql success ch03

217

select country, min(year_released) oldest_movie from movies group by country

having

Page 218: Sql success ch03

218

select country, min(year_released) oldest_movie from movies group by country

having min(year_released) < 1940

having

Page 219: Sql success ch03

219 Flickr: Randy Robertson

SORT

219

Page 220: Sql success ch03

220

group by country having country = 'us'

select country, min(year_released) oldest_movie from movies

Page 221: Sql success ch03

221

where country = 'us' group by country

select country, min(year_released) oldest_movie from movies

Page 222: Sql success ch03

222 Flickr: Dano 222

Page 223: Sql success ch03

223

having

Result of aggregate

Page 224: Sql success ch03

224

Nulls?

Page 225: Sql success ch03

225

Nulls?

known + unknown = unknown

Page 226: Sql success ch03

226

FLickr: Linda Åslund

Aggregate functions

ignore Nulls

226

Page 227: Sql success ch03

227

select max(died) most_recent_death from people

Page 228: Sql success ch03

228

select max(died) most_recent_death from people where died is not null

Page 229: Sql success ch03

229

count(*)

Page 230: Sql success ch03

230

count(*)

Page 231: Sql success ch03

231

count(col)

Page 232: Sql success ch03

232

count(col)

Page 233: Sql success ch03

233

select count(*) people_count, count(born) birth_year_count, count(died) death_year_count from people

Page 234: Sql success ch03

234

select count(colname)

Page 235: Sql success ch03

235

select count(distinct colname)

Page 236: Sql success ch03

236

select country, count(distinct year_released) number_of_years from movies group by country

Page 237: Sql success ch03

237

select country, count(*) number_of_years from (select distinct country, year_released from movies) t group by country

Page 238: Sql success ch03

238

How many people are both

actors and directors?

Page 239: Sql success ch03

239

How many people are both

actors and directors?

Page 240: Sql success ch03

240

How many people are both

actors and directors?

Page 241: Sql success ch03

241

How many people are both

actors and directors?

Page 242: Sql success ch03

242

How many people are both

actors and directors?

Page 243: Sql success ch03

243

How many people are both

actors and directors?

Page 244: Sql success ch03

244

How many people are both

actors and directors?

Page 245: Sql success ch03

245

How many people are both

actors and directors?

credits

Page 246: Sql success ch03

246

8 37 D 8 38 A 8 39 A 8 40 A 10 11 A 10 12 A 10 15 D 10 16 A 10 17 A 12 11 A 12 11 D 12 12 A 136 378 D 136 433 A 136 434 A 136 435 A 115 38 A 115 359 D 115 360 A ...

movieid peopleid credited_as

Page 247: Sql success ch03

247

8 37 D 8 38 A 8 39 A 8 40 A 10 11 A 10 12 A 10 15 D 10 16 A 10 17 A 12 11 A 12 11 D 12 12 A 136 378 D 136 433 A 136 434 A 136 435 A 115 38 A 115 359 D 115 360 A ...

movieid peopleid credited_as

select peopleid, credited_as from credits

Page 248: Sql success ch03

248

8 37 D 8 38 A 8 39 A 8 40 A 10 11 A 10 12 A 10 15 D 10 16 A 10 17 A 12 11 A 12 11 D 12 12 A 136 378 D 136 433 A 136 434 A 136 435 A 115 38 A 115 359 D 115 360 A ...

movieid peopleid credited_as

38 A

38 A

select peopleid, credited_as from credits

Page 249: Sql success ch03

249

8 37 D 8 38 A 8 39 A 8 40 A 10 11 A 10 12 A 10 15 D 10 16 A 10 17 A 12 11 A 12 11 D 12 12 A 136 378 D 136 433 A 136 434 A 136 435 A 115 38 A 115 359 D 115 360 A ...

movieid peopleid credited_as

38 A

38 A

11 A

11 A

select peopleid, credited_as from credits

Page 250: Sql success ch03

250

peopleid credited_as

11 A 11 D 12 A 15 D 16 A 17 A 37 D 38 A 39 A 40 A 359 D 360 A 361 A 378 D 379 A 380 A 442 A 442 D 443 A ...

select distinct peopleid, credited_as from credits where credited_as in ('A', 'D')

Page 251: Sql success ch03

251

select distinct peopleid, credited_as from credits where credited_as in ('A', 'D')

Page 252: Sql success ch03

252

( ) all_actors_and_directors

select distinct peopleid, credited_as from credits where credited_as in ('A', 'D')

Page 253: Sql success ch03

253

select peopleid, count(*) as number_of_roles from group by peopleid having count(*) = 2

( ) all_actors_and_directors

select distinct peopleid, credited_as from credits where credited_as in ('A', 'D')

Page 254: Sql success ch03

254

select peopleid, count(*) as number_of_roles from group by peopleid having count(*) = 2

( ) all_actors_and_directors

select distinct peopleid, credited_as from credits where credited_as in ('A', 'D')

select count(*) number_of_acting_directors from (

) acting_directors

Page 255: Sql success ch03

255

Rows are selected with where + conditions. Beware of or. Beware of nulls. Beware of dates.

Page 256: Sql success ch03

256

Rows are selected with where + conditions. Beware of or. Beware of nulls. Beware of dates. Many functions. case ... end for conditional display.

Page 257: Sql success ch03

257

Rows are selected with where + conditions. Beware of or. Beware of nulls. Beware of dates. Many functions. case ... end for conditional display.

You must use distinct or group by to remove duplicates from a result set if there is no key.