簡體   English   中英

如何在子查詢中使用一個SQL查詢的結果

[英]How to use results of one sql query within a sub-query

我必須回答以下問題

“對於數據庫中的每一年,請列出該年和該年發行的電影總數,並以降序顯示這些總數。也​​就是說,電影數最大的年份排在最前面。如果有些年電影的數量相同,請按年升序顯示。”

目前,我正在使用下面的代碼將電影分組在一起,但是無法將它們排序:

Select YearReleased, count(*)                
from Movies                             
group by YearReleased 

我希望使用某種方式對此進行排序,並嘗試通過以下方式創建一個使用第一個查詢結果的子查詢:

(select * from results order by count(*))

但到目前為止,我一直沒有成功。 我如何實現這一目標,或者有更好的方法來按順序獲得結果?

與實際的錯誤文本相反,“不成功”不是很有用-而且您沒有告訴我們您要針對哪個供應商的數據庫運行,因此我們無法進行測試。 也就是說,以下應該起作用:

select
  YearReleased,
  count(*) as movie_count
  from movies
  group by YearReleased
  order by movie_count desc, YearReleased;

無需子查詢!

根據SQLite 3.5.9驗證; 如果是在不符合標准的情況下運行(SQLite ,除非非常明確地記錄在案,否則),您的里程可能會有所不同。

從*中選擇*(從YearReleased從Movies組中選擇YearReleased,count(*)作為NumReleased)由NumReleased排序

select * from (select YearReleased, count(*) counter
from Movies
group by YearReleased 
) a order by counter

可能需要更改語法,具體取決於您的sql風格。

在第一個查詢中:選擇yearReleased,在第二個查詢中將count(*) 作為'count1' :按count1排序

是的,使用聚合,您可以為count(*)放置一個別名,並且可以將其作為一列引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM