我是 Oracle 新手,只是想學習。
以下兩個查詢的結果是否相同?
查詢 1
SELECT
COUNT( customers.id ) AS "id",
customers.full_name AS "name",
customers.cty AS "country",
TO_CHAR( customers.date, 'mm/dd/yyyy' ) AS "date"
FROM customers
GROUP BY
customers.full_name,
customers.cty,
TO_CHAR( customers.date, 'mm/dd/yyyy' );
查詢 2:GROUP BY 子句中沒有 TO_CHAR()
SELECT
COUNT( customers.id ) AS "id",
customers.full_name AS "name",
customers.cty AS "country",
TO_CHAR( customers.date, 'mm/dd/yyyy' ) AS "date"
FROM customers
GROUP BY
customers.full_name,
customers.cty,
customers.date;
我使用的是 Oracle 12.1 版。
uj5u.com熱心網友回復:
兩個查詢都不會回傳相同的結果......除非customers.date只包含沒有時間部分的日期。Oracle 中的DATE型別包括日期部分和時間部分。所以它相當于一個時間戳。
第一個查詢按天分組,而第二個查詢按日期/小時/分鐘/秒分組。
uj5u.com熱心網友回復:
不。我什至認為第二個不會運行,因為您的 GROUP BY 與您的 SELECT 不匹配(不包括 COUNT(*) 等聚合欄位
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/457831.html
標籤:sql 甲骨文 oracle12.1
上一篇:合并具有相同ID的資料
