Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Программирование / Прикладное / GROUP BY (11401 хитов)
- Написал(а) G0thic Дата 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 - Написал(а) G0thic Дата 06.03.07 13:12
Хотелось бы на awk. Потому как ничего другого типа перла или пхп на хосте нет.
awk {s[$1] += $2} END { print s } - не прокатывает. походу в нем нет ассоциативных массивоф :-(
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent - Написал(а) G0thic Дата 06.03.07 14:12 Отредактировано 06.03.07 14:17
Все нормально, работает ;-)
Только вот так надо:
awk '{s[$1] += $2} END {for (k in s) print k,s[k]}'
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent - Написал(а) LOE (Site/forum admin) Дата 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 Написал(а) G0thic Дата 06.03.07 14:17
Начал причесывать - увидел твой ответ. Уже поправил ;-)
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent Написал(а) G0thic Дата 06.03.07 14:19
Только у меня в данных вместо a,b и c - предложения. Тут похитрее получается. Надо $NF использовать.
Но все равно я доволен :-)
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Предыдущая Следующая Вверх Тема Программирование / Прикладное / GROUP BY (11401 хитов)
Ошибка базы данных

Can't open file: 'log.MYD'. (errno: 145)

INSERT INTO log (
level, entity, action, userId, boardId, topicId, postId, extraId,
logTime, ip
) VALUES (
2, 'topic', 'show', 0, 35, 441, 0, 0,
1781021326, '10.1.40.241, 216.73.217.162'
)

Если вы думаете, что действительно произошла ошибка, пожалуйста, информируйте администратора. Включите точное сообщение об ошибке и время.

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.076s with 9 database queries.