Ivanovo Linux Users Group - Not logged in
Forum Help Search Login
Previous Next Up Topic Программирование / Прикладное / GROUP BY (7098 hits)
- By G0thic Date 06.03.07 13:00
Подскажите, как шелл скриптом сосчитать суммы в группах, также как в sql запросе:
SELECT SUM(TOTAL) FROM X GROUP BY NAME;
-------
NAME TOTAL
a 1
a 1
b 2
b 2
c 4
c 4
------
Получить надо
a 2
b 4
c 8
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent - By G0thic Date 06.03.07 13:12
Хотелось бы на awk. Потому как ничего другого типа перла или пхп на хосте нет.
awk {s[$1] += $2} END { print s } - не прокатывает. походу в нем нет ассоциативных массивоф :-(
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent - By G0thic Date 06.03.07 14:12 Edited 06.03.07 14:17
Все нормально, работает ;-)
Только вот так надо:
awk '{s[$1] += $2} END {for (k in s) print k,s[k]}'
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent - By LOE (Site/forum admin) Date 06.03.07 14:16
Массивы в awk как раз ассоциативные :-)

Чуток вывод по другому сделай (судя по условию задачи):
awk '{S[$1] += $2} END { for (k in S) print k " " S[k] }'
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent By G0thic Date 06.03.07 14:17
Начал причесывать - увидел твой ответ. Уже поправил ;-)
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent By G0thic Date 06.03.07 14:19
Только у меня в данных вместо a,b и c - предложения. Тут похитрее получается. Надо $NF использовать.
Но все равно я доволен :-)
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Previous Next Up Topic Программирование / Прикладное / GROUP BY (7098 hits)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.073s with 10 database queries.