2013-02-08 35 views
2

所以我試圖找到最老和最小的男性和女性患者的年齡以及我工作的診所的男性和女性患者的平均年齡。我是SQL新手,但基本上它都來自我認爲名爲「患者」的一張表。在患者表格內有一列性別列,其中M爲男性,F爲女性。還有一個年齡欄。我猜這是非常簡單的,我只是讓這變得複雜,但有人可以幫助我?最小和最大的簡單SQL查詢

我的查詢相當有限。我知道,如果你做的線沿線的東西:

Select 
    Min(AGE) AS AGEMIN, 
    MAX(AGE) AS AGEMAX 
From Patients 
+0

請附上您的查詢。 – MikeSmithDev

+0

警告:存儲「年齡」列稍後會咬你 - 你應該更好地存儲「生日」列。原因是:你什麼時候更新他們的年齡? –

+0

是的,我知道年齡欄通常不會工作,但在這種情況下,年齡適用於當他們來到這裏的特定情況,所以它不會不斷變化。 我的查詢相當有限。我知道,如果你做的線沿線的東西: 選擇閔(AGE)AS AGEMIN,MAX(AGE)AS AGEMAX 患者 最重要的是我似乎無法選擇性別列當我運行上面的語句。 – Zi0n1

回答

5

使用GROUP BY條款:

select * from @MyTable 
  • 米10
  • 男性15
  • M 20
  • ˚F30
  • F 35
  • ˚F40

    select Gender, MIN(Age), MAX(Age), AVG(Age) 
    from @MyTable 
    group by Gender 
    
  • ˚F30 40 35

  • 米10 20 15
+0

DOH!忘記了關於集團BY 謝謝!仍然試圖去解決這個問題。 – Zi0n1

+0

因此,以小組爲單位... ...如何在同一查詢中獲得男性的平均年齡和女性的平均年齡? – Zi0n1

+0

@ user2052853完全如您所料。與最小值/最大值相同。這些是由[group by]控制的[SQL聚合函數](http://www.w3schools.com/sql/sql_functions.asp)的示例。 – congusbongus

1

在這裏你去

SELECT gender, AVG(age) as avgage, MAX(age) as maxage, MIN(age) as minage 
FROM patients 
group by gender; 
+0

我想知道downvote,直到我閱讀原始答案。 –