programing

타임스탬프를 사용한 일별 MySQL 그룹 결과

oldcodes 2023. 10. 16. 22:03
반응형

타임스탬프를 사용한 일별 MySQL 그룹 결과

나는 아래의 질문을 받고 요일별로 그룹화된 주문의 총 주문 수와 합계를 뽑아내야 합니다.저는 타임스탬프를 이용해서 모든 것을 저장하고 있습니다.

SELECT
    COUNT(id) as order_count,
    SUM(price + shipping_price) as order_sum,
    DAY(FROM_UNIXTIME(created)) as day
FROM `order`
WHERE '.implode(' AND ', $where).'

데이별로 그룹을 짜야 하는데 이번 주말 매출을 할 때는 오더_count를 가져가서 3개가 아니라 1개가 됩니다.요일별로 그룹화된 위의 값을 당기려면 어떻게 해야 합니까?

참고: 임프로드는 시간 주기를 정의하는 데만 사용됩니다(여기서 생성된 >= TIMESTAMP AND <= TIMESTAMP>).

갱신하다

그룹별 미포함day

Array ( 
    [order_count] => 3
    [order_sum] => 69.70
    [day] => 17
)

그룹별 사용day

Array ( 
    [order_count] => 1
    [order_sum] => 24.90
    [day] => 17
)

매출이 있었던 하루, 주문 수량, 매출액 합계를 반환하려면 이 쿼리가 필요합니다.퍼즐 조각 하나를 여기 어딘가에 놓쳤어요...

당신은 단지 추가하는 것을 잊어버린 것입니까?GROUP BY ...마지막에?

SELECT
    COUNT(id) as order_count,
    SUM(price + shipping_price) as order_sum,
    DAY(FROM_UNIXTIME(created)) as order_day
FROM `order`
WHERE '.implode(' AND ', $where).'
GROUP BY order_day

참고:

사용할수없습니다as day당신의 주간 칼럼을 위해서는day는 MySQL 함수입니다.다음과 같은 것을 사용합니다.order_day.

유니콘스의

@OMG Unicon의 의견에 따라 다음을 사용할 수 있습니다.

DAY(FROM_UNIXTIME(created)) as `day`

랩만 있으면 됩니다.day뒷걸음질 치고 있어요

간단히 다음을 사용할 수도 있습니다.

SELECT 
COUNT( id ) AS order_count, 
SUM( price + shipping_price ) AS order_sum
FROM  `order` 
GROUP BY LEFT( timestamp, 10 ) 

또는 심지어

GROUP BY Substrate (타임스탬프, 1, 10 )

당신은 아마도 당신과 당신 사이의 이름을 놓고 충돌하고 있을 것입니다.DAY()(MySQL의 함수) 및day(변수 이름).다음과 같이 충돌하지 않는 것을 사용해 본 적이 있습니까?order_day?

언급URL : https://stackoverflow.com/questions/2670871/mysql-group-results-by-day-using-timestamp

반응형