복붙노트

[SQL] 어떻게 MySQL의에서 SUM () BY ORDER에?

SQL

어떻게 MySQL의에서 SUM () BY ORDER에?

나는 테이블을 가지고 : "ID 이름 c_counts의 f_counts"

내가 합계 모든 기록을 주문하려는 (c_counts + f_counts) 하지만이 작동하지 않습니다

합에 의해 나타난 ORDER FROM SELECT * (+ c_counts f_counts) LIMIT 20;

해결법

  1. ==============================

    1.당신이 그룹화 혼합하는 경우 (예. SUM) 필드와 비 그룹화 필드, 당신은 GROUP BY 비 그룹화 필드 중 하나를해야한다는 것을 잊지 마십시오.

    당신이 그룹화 혼합하는 경우 (예. SUM) 필드와 비 그룹화 필드, 당신은 GROUP BY 비 그룹화 필드 중 하나를해야한다는 것을 잊지 마십시오.

    이 시도:

    SELECT SUM(something) AS fieldname
    FROM tablename
    ORDER BY fieldname
    

    아니면 이거:

    SELECT Field1, SUM(something) AS Field2
    FROM tablename
    GROUP BY Field1
    ORDER BY Field2
    

    그리고 당신은 항상이 같은 파생 쿼리를 수행 할 수 있습니다

    SELECT
       f1, f2
    FROM
        (
            SELECT SUM(x+y) as f1, foo as F2
            FROM tablename 
            GROUP BY f2
        ) as table1
    ORDER BY 
        f1
    

    많은 가능성!

  2. ==============================

    2.이것은 당신이 그것을하는 방법이다

    이것은 당신이 그것을하는 방법이다

    SELECT ID,NAME, (C_COUNTS+F_COUNTS) AS SUM_COUNTS 
    FROM TABLE 
    ORDER BY SUM_COUNTS LIMIT 20
    

    SUM 함수는 ORDER BY 절은 쓸모 그래서, 대신 당신은 GROUP BY 절을 사용해야합니다, 모든 행을 추가합니다.

  3. ==============================

    3.당신이 시도 할 수 :

    당신이 시도 할 수 :

    SELECT * 
    FROM table 
    ORDER BY (c_counts+f_counts) 
    LIMIT 20
    
  4. ==============================

    4.GROUP BY 절없이, 어떤 합계가, 단일 행에 모든 행을 롤업됩니다 쿼리합니다 참으로하지 작업 때문에. 당신은 이름, 말, 그룹화 및 합계 (c_counts + f_counts)로 주문한 경우, 당신은 몇 가지 유용한 결과를 얻을 수 있습니다. 하지만 당신은 무언가에 의해 그룹에있을 것입니다.

    GROUP BY 절없이, 어떤 합계가, 단일 행에 모든 행을 롤업됩니다 쿼리합니다 참으로하지 작업 때문에. 당신은 이름, 말, 그룹화 및 합계 (c_counts + f_counts)로 주문한 경우, 당신은 몇 가지 유용한 결과를 얻을 수 있습니다. 하지만 당신은 무언가에 의해 그룹에있을 것입니다.

  5. ==============================

    5.내가 여기에서 볼 문제는 "합"집계 함수라는 것이다.

    내가 여기에서 볼 문제는 "합"집계 함수라는 것이다.

    첫째, 당신은 쿼리 자체를 수정해야합니다.

    Select sum(c_counts + f_counts) total, [column to group sums by]
    from table
    group by [column to group sums by]
    

    다음, 당신은 그것을 정렬 할 수 있습니다 :

    Select *
    from (query above) a
    order by total
    

    편집하다: 그러나 Virat에 의해 게시물을 참조하십시오. 아마 당신이 원하는 것은 그룹을 통해 총 필드의 합 있지만, 각 레코드의 해당 필드에 불과 합이 아니다. 이 경우, Virat 오른쪽 솔루션을 제공합니다.

  6. from https://stackoverflow.com/questions/1309841/how-to-order-by-a-sum-in-mysql by cc-by-sa and MIT license