數據分析入門之SQL演練
1 SELECT查詢語句
- 顯示 Germany 的人口。
SELECT population FROM world WHERE name=Germany;
- 查詢面積為 5,000,000 以上平方公里的國家,對每個國家顯示她的名字和人均國內生產總值(
gdp/population
)。
SELECT name,gdp/population FROM world WHERE area > 5000000;
- 顯示「Ireland 愛爾蘭」,「Iceland 冰島」,「Denmark 單丹麥」的國家名稱和人口。
SELECT name,population FROM world WHERE name IN(Ireland,Iceland,Denmark);
- 顯示面積為 200,000 及 250,000 之間的國家名稱和該國面積。
SELECT name,area FROM world WHERE area < 250000 AND area > 200000;
- 找出以 Y 為開頭的國家。
SELECT name FROM world WHERE name LIKE Y%;
- 找出以 Y 為結尾的國家。
SELECT name FROM world WHERE name LIKE %Y;
- 找出所有國家,其名字包括字母x。
SELECT name FROM world WHERE name LIKE %x%;
- 找出所有國家,其名字以 land 作結尾。
SELECT name FROM world WHERE name LIKE %land;
- 找出所有國家,其名字以 C 作開頭,ia 作結尾。
SELECT name FROM world WHERE name LIKE c%ia;
- 找出所有國家,其名字包括字母oo。
SELECT name FROM world WHERE name LIKE %oo%;
- 找出所有國家,其名字包括三個或以上的a。
SELECT name FROM world WHERE name LIKE %a%a%a%;
- 找出所有國家,其名字以t作第二個字母。
SELECT name FROM world WHERE name LIKE _t%ORDER BY name;
- 找出所有國家,其名字都有兩個字母 o,被另外兩個字母相隔著。
SELECT name FROM world WHERE name LIKE %o__o%;
- 找出所有國家,其名字都是 4 各字母的。
SELECT name FROM world WHERE name LIKE ____;
- 顯示所有國家名字,其首都和國家名字是相同的。
SELECT name FROM world WHERE name LIKE capital;
- 顯示所有國家名字,其首都是國家名字加上」City」。
SELECT name FROM world WHERE capital LIKE %city;
- 找出所有首都和其國家名字,而首都要有國家名字中出現。
SELECT capital,nameFROM worldWHERE capital LIKE concat(%%,concat(name,%%))
- 顯示具有至少2億人口的國家名稱。 2億是200000000,有八個零。
SELECT name FROM worldWHERE population>200000000
- 找出有至少200百萬(2億)人口的國家名稱,及人均國內生產總值。
SELECT name,gdp/populationFROM worldWHERE population > 200000000;
- 顯示South America南美洲大陸的國家名字和以百萬為單位人口數。 將人口population 除以一百萬(1000000)得可得到以百萬為單位人口數。
SELECT name,population/1000000FROM worldWHERE continent = South America
- 顯示法國,德國,義大利(France, Germany, Italy)的國家名稱和人口。
SELECT name,populationFROM worldWHERE name IN (France,Germany,Italy);
- 顯示包含單詞「United」為名稱的國家。
SELECT nameFROM worldWHERE name LIKE %United%;
- 成為大國的兩種方式:如果它有3百萬平方公里以上的面積,或擁有250百萬(2.5億)以上人口。
展示大國的名稱,人口和面積。
SELECT name,population,areaFROM worldWHERE area > 3000000 OR population > 250000000;
- 美國、印度和中國(USA, India, China)是人口又大,同時面積又大的國家。排除這些國家。
顯示以人口或面積為大國的國家,但不能同時兩者。顯示國家名稱,人口和面積。
/*SELECT name,population,areaFROM worldWHERE area > 3000000 OR population > 250000000;8*/
本題需要進一步學習和修改
參考答案
SELECT name,population,area FROM world WHERE (area>3000000 AND population<250000000) OR (area<3000000 AND population>250000000);
https://blog.csdn.net/bestallen/article/details/53677369
- 除以為1000000(6個零)是以百萬計。除以1000000000(9個零)是以十億計。使用 ROUND 函數來顯示的數值到小數點後兩位。
對於南美顯示以百萬計人口,以十億計2位小數GDP。
SELECT name,round(population/1000000,2),round(gdp/1000000000,2)FROM worldWHERE continent = South America;
- 顯示國家有至少一個萬億元國內生產總值(萬億,也就是12個零)的人均國內生產總值。四捨五入這個值到最接近1000。
顯示萬億元國家的人均國內生產總值,四捨五入到最近的$ 1000。
SELECT name,round(gdp/population,-3)FROM worldWHERE gdp > 1000000000000;
以上更新於2018/6/5
- 更改查詢以顯示1950年諾貝爾獎的獎項資料。
SELECT yr, subject, winner FROM nobel WHERE yr = 1950
- 顯示誰贏得了1962年文學獎(Literature)。
SELECT winner FROM nobel WHERE yr = 1962 AND subject = Literature
- 顯示「愛因斯坦」(Albert Einstein) 的獲獎年份和獎項。
SELECT yr,subjectFROM nobelWHERE winner = Albert Einstein
- 顯示2000年及以後的和平獎(『Peace』)得獎者。
SELECT winnerFROM nobelWHERE yr >= 2000AND subject =Peace
- 顯示1980年至1989年(包含首尾)的文學獎(Literature)獲獎者所有細節(年,主題,獲獎者)。
SELECT *FROM nobelWHERE subject = Literature AND yr BETWEEN 1980 AND 1989
- 顯示總統獲勝者的所有細節:
西奧多?羅斯福 Theodore Roosevelt
伍德羅?威爾遜 Woodrow Wilson
吉米?卡特 Jimmy Carter
SELECT * FROM nobel WHERE winner IN (Theodore Roosevelt, Woodrow Wilson, Jimmy Carter)
- 顯示名字為John 的得獎者。 (注意:外國人名字(First name)在前,姓氏(Last name)在後)
SELECT winner FROM nobelWHERE winner LIKE concat( John,%%)
- 顯示1980年物理學(physics)獲獎者,及1984年化學獎(chemistry)獲得者。
SELECT * FROM nobelWHERE (yr = 1980 AND subject = physics)OR (yr = 1984 AND subject = chemistry)
- 查看1980年獲獎者,但不包括化學獎(Chemistry)和醫學獎(Medicine)。
SELECT * FROM nobelWHERE yr = 1980 AND subject NOT IN(Chemistry,Medicine)
- 顯示早期的醫學獎(Medicine)得獎者(1910之前,不包括1910),及近年文學獎(Literature)得獎者(2004年以後,包括2004年)。
SELECT * FROM nobelWHERE (subject = Medicine AND yr < 1910)OR (subject = Literature AND yr >= 2004)
- Find all details of the prize won by PETER GRüNBERG
SELECT * FROM nobelWHERE winner = Peter Grünberg
關於ü:ü - Wikipedia
- 查找尤金?奧尼爾EUGENE ONEILL得獎的所有細節 Find all details of the prize won by EUGENE ONEILL
跳脫字元:單引號
你不能把一個單引號直接的放在字元串中。但您可連續使用兩個單引號在字元串中當作一個單引號。
SELECT * FROM nobelWHERE winner = Eugene ONeill
- 騎士列隊 Knights in order
列出爵士的獲獎者、年份、獎頁(爵士的名字以Sir開始)。先顯示最新獲獎者,然後同年再按名稱順序排列。
SELECT winner,yr,subject FROM nobelWHERE winner LIKE Sir% ORDER BY yr DESC
- The expression subject IN (Chemistry,Physics) can be used as a value - it will be 0 or 1.
Show the 1984 winners and subject ordered by subject and winner name; but list Chemistry and Physics last.
SELECT winner, subject FROM nobel WHERE yr=1984 ORDER BY subject IN (Chemistry,Physics),subject ASC,winner ASC
在ORDER BY 排序時,可以配合IF()或 IN()語句完成特殊排序
https://blog.csdn.net/bestallen/article/details/53726192
以上更新於2018/6/6
推薦閱讀:
※0028數據展現:數據條、圖標與迷你圖的製作
※做運營必須掌握的四個數據分析思維
※7. 如何實現數據分析的價值
※0026數據分析:數據透視
※數據分析師分哪些方向