最近開始學習SQL,經常遇到的問題是按照一定的標準對表重新排序。例如,我有一個表“電影”,它有幾個變數,包括“國家”和“標題”。我嘗試通過應用一些操作來重新排序表:
SELECT
t.country, t.title, t2.titlecount AS tmp1, t2.math AS tmp2
FROM films AS t
INNER JOIN (SELECT country, COUNT(title) AS titlecount, SUM((budget - duration) / release_year) AS math
FROM films
GROUP BY country
ORDER BY titlecount DESC) AS t2 on t.country = t2.country
ORDER BY tmp1 DESC, tmp2, (t.budget - t.duration) / t.release_year, title
然后,我最終得到 4 列“國家”、“標題”、“tmp1”和“tmp2”。我可以洗掉兩個 tmp 列而只檢索“國家”和“標題”嗎?由于重新排序需要兩個 tmp 變數,因此我不能從一開始就洗掉它們。有沒有辦法處理這些情況?謝謝你。
uj5u.com熱心網友回復:
嵌套查詢應該有幫助:
select s.country, s.title from (SELECT
t.country as country, t.title as title, t2.titlecount AS tmp1, t2.math AS tmp2
FROM films AS t
INNER JOIN (SELECT country, COUNT(title) AS titlecount, SUM((budget - duration) / release_year) AS math
FROM films
GROUP BY country
ORDER BY titlecount DESC) AS t2 on t.country = t2.country
ORDER BY tmp1 DESC, tmp2, (t.budget - t.duration) / t.release_year, title) as s;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/385381.html
標籤:sql
