/ / czy możemy użyć sumy w group_concat w mysql? - mysql, sql, group-by, aggregate-functions

czy możemy użyć sumy w group_concat w mysql? - mysql, sql, group-by, aggregate-functions

Mam jeden stół, z tego chcę uzyskać trzy kolumny. takie jak user_id, entry_date, time_duration. Z tego zapytania chcę uzyskać sumę pracownika (czas trwania) w dzień mądry.

moja struktura tabeli to -

wprowadź opis obrazu tutaj

mój oczekiwany wynik to -

wprowadź opis obrazu tutaj

moje zapytanie i co otrzymuję jest

wprowadź opis obrazu tutaj

jak mogę uzyskać mój faktyczny wynik?

Odpowiedzi:

1 dla odpowiedzi № 1

Możemy zebrać dwa razy tutaj. Najpierw agreguj według osoby i daty, aby wygenerować sumę razy. Następnie agreguj po raz drugi tylko przez osobę i generuj wynik CSV dla dat i sumy razy.

SELECT
sno,
GROUP_CONCAT(entry_date ORDER BY entry_date) AS entry_dates,
GROUP_CONCAT(CAST(sum_time AS CHAR(50)) ORDER BY entry_date) AS sum_times
FROM
(
SELECT sno, entry_date,
SEC_TO_TIME(SUM(TIME_TO_SEC(time_duration))) AS sum_time
FROM yourTable
GROUP BY sno, entry_date
) t
GROUP BY sno;

Zwróć uwagę, że jeśli chcesz podsumować czas, musimy wykonać trochę pracy. Jedną z opcji jest zamiana czasu na sekundy, suma, a następnie konwersja sekund z powrotem na czas. ja robię nie biorą udziału w szukaniu tej metody.

Kliknij link pokazowy poniżej, aby zobaczyć zapytanie w działaniu, korzystając z przykładowych danych dostarczonych przez pytanie.

Próbny