이 쿼리가 어떻게 실행되는지 궁금합니다 :ORDER BY가있는 SELECT TOP과 DERIVED TABLE은 Sybase ASE에서 어떻게 작동합니까?
"파생 테이블에서 ORDER BY 절을 사용할 수 없습니다."라는 오류 메시지가 나타납니다. TOP을 사용하여 동일 함. 개별적으로
SELECT
count(*),
sum(a_metric_1),
a_fld_1
FROM
(
SELECT
sales AS a_metric_1,
product AS a_fld_1
FROM
bi_sales
) sel1
INNER JOIN (
SELECT
TOP 10 product AS b_fld_1
FROM
bi_sales
GROUP BY
product
ORDER BY
sum(sales) DESC
) sel2 ON sel1.a_fld_1 = sel2.b_fld_1
GROUP BY
a_fld_1
ORDER BY
a_fld_1
SELECT의 일을하지만, 파생 테이블에서 작동하지 않습니다 :
가 작동하지.
WORK :
내가 BY 및 TOP 기능 ORDER과 파생 테이블을 사용하여 SQL을 실행해야SELECT
TOP 10 product AS b_fld_1
FROM
bi_sales
GROUP BY
product
ORDER BY
sum(sales) DESC
. PHP 코드를 생성하는 개발 소프트웨어를 사용하기 때문에 RAD입니다. 따라서 사용자는 자신의 SQL을 알려야하며 간단하거나 복잡 할 수 있습니다.
는의, 케이스 가입과 다른 SQL 복잡 할 수있다 "SEL1"...
따라서, 우리는 "SEL1"와 같이 사용자의 SQL을 치료하는 것을 상상해보십시오. 우리는 "sel2"와 함께 TOP ORDER BY를 사용하여 응답 한 다음 "sel1"및 "sel2"에 비교 JOIN이있는 새로운 외부 SELECT를 작성합니다. 베이스에
가 작동하지 않습니다 :
SELECT column FROM (SELECT top 10 column2 FROM table ORDER BY column2)
MS SQL 서버, MySQL은, 오라클, MS 액세스, PostgreSQL을, SQLite는, 파이어 버드 및 Informix에 같은 문 작동합니다.
답장을 보내 주셔서 감사합니다. 그것은 훨씬 간단
SELECT TOP 10 product AS b_fld_1, SUM(sales), COUNT(*)
FROM bi_sales
GROUP BY product
ORDER BY sum(sales) DESC;
: 귀하의 경우
무엇이 질문입니까? – artm