2011-08-17 78 views
0

定義別名我需要做的:在統計查詢

SELECT COUNT(*) 
    FROM some_table 
WHERE someAlias1 = someValue1 
    AND someAlias2 = someValue2; 

someAlias是在some_table列的別名。在我的情況下,我不能直接命名列;我需要使用別名。

的問題是,我只知道如何定義SELECT子句中,我不知道怎樣才能在這種情況下,裏面做的別名。

有沒有辦法來完成我需要在這種情況下?

編輯:爲什麼我需要的別名?我從其他部分構建查詢,上面的條件適用於不同表中的不同列,但是具有相同的邏輯角色。所以我需要一種方法來關聯具有相同名稱的不同備選列。

如果你只,如果你知道一個答案回答這個問題,我會十分感激,即使你不明白爲什麼我可能需要一個別名

+1

只是好奇,爲什麼你不能直接命名列? – 2011-08-17 12:51:47

+1

爲什麼你需要使用別名?當你甚至不能使用它們時,你是如何得到這個限制的? – 2011-08-17 12:52:39

+0

查看我的編輯 – shealtiel 2011-08-17 12:56:34

回答

2

你可以做一個嵌套的SELECT語句,然後從內查詢出繪製計數,我真的不明白的方式使用的列名

SELECT COUNT(*) 
    FROM(
     SELECT col1 as someAlias1, 
       col2 as someAlias2 
     FROM some_table 
     WHERE someAlias1 = someValue1 
     AND someAlias2 = someValue2 
     ) as inner 
逃脫
2

我想不通這樣一個場景,你不能命名直接列。如果列名重複,前面加上表名:

WHERE someTable1.someColumn1 = someValue1 

如果列名是保留關鍵字或包含空格,引號,:

WHERE `some Column1` = someValue1 

你甚至可以結合兩種:

WHERE someTable1.`some Column1` = someValue1 
0

爲什麼你需要使用別名?在你的查詢中使用別名的唯一原因是要在例如一個「具有」條款,如:

select count(*) as C 
    from some_table 
where someAlias1=someValue1 
    and someAlias2=someValue2 
having C > someLimit1;