Visit Our UNIX and Linux User Community


Column sum group by uniq records


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Column sum group by uniq records
# 8  
Old 02-16-2009
Try this

Code:
awk -F  ";"  '{ string=$1 ";" $2; arr[string] += $3 } END {for (i in arr) {print i ";" arr[i] } }' inputfile


Last edited by Franklin52; 02-16-2009 at 07:13 AM.. Reason: adding code tags
# 9  
Old 02-16-2009
Column sum group by uniq records Reply to Thread

This one also doesn't work....
# 10  
Old 02-16-2009
What doesn't work? Did you get errors, wrong output, no output? Try this:

Code:
awk 'BEGIN{FS=OFS=";"}
NR==1{print;next}
{a[$1";"$2]+=$3}
END{for(i in a)print i, a[i]}' file

Use nawk or /usr/xpg4/bin/awk on Solaris.

Regards
# 11  
Old 02-16-2009
Hi Franklin,

I tried ur solution and getting below o/p

PORT;PID;TOTAL
port1;p1
port2;p2

I guess someting is missing, it is doing group by but missing the output values.
Thanks for the response.

Regards,
Sandeep
# 12  
Old 02-16-2009
Column sum group by uniq records Reply to Thread

getting below o/p..missed some values in last post

PORT;PID;TOTAL
port1;p1;500
port2;p2;0


Quote:
Originally Posted by sandeep13
Hi Franklin,

I tried ur solution and getting below o/p

PORT;PID;TOTAL
port1;p1
port2;p2

I guess someting is missing, it is doing group by but missing the output values.
Thanks for the response.

Regards,
Sandeep
# 13  
Old 02-16-2009
This is what I get:

Code:
$ cat file
PORT; ID; TOTAL
port1;p1;100000
port2;p2;5000
port1;p1;500
$
$
$ awk 'BEGIN{FS=OFS=";"}                              
NR==1{print;next}
{a[$1";"$2]+=$3}
END{for(i in a)print i, a[i]}' file
PORT; ID; TOTAL
port2;p2;5000
port1;p1;100500
$
$

Regards
# 14  
Old 02-16-2009
Column sum group by uniq records Reply to Thread

HI Franklin,

Thanks a lot. It works....using nawk

/usr/bin/nawk 'BEGIN{FS=OFS=";"}NR==1{print;next}{a[$1";"$2]+=$3}END{for(i in a)print i, a[i]}' file

Much appreciated.

Cheers,
Sandeep


Quote:
Originally Posted by Franklin52
This is what I get:

Code:
$ cat file
PORT; ID; TOTAL
port1;p1;100000
port2;p2;5000
port1;p1;500
$
$
$ awk 'BEGIN{FS=OFS=";"}                              
NR==1{print;next}
{a[$1";"$2]+=$3}
END{for(i in a)print i, a[i]}' file
PORT; ID; TOTAL
port2;p2;5000
port1;p1;100500
$
$

Regards

Previous Thread | Next Thread
Test Your Knowledge in Computers #846
Difficulty: Medium
The term "sideload" was coined in the late 1990s by IBM.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to Sum columns when other column has duplicates and append one column value to another with Care

Hi Experts, Please bear with me, i need help I am learning AWk and stuck up in one issue. First point : I want to sum up column value for column 7, 9, 11,13 and column15 if rows in column 5 are duplicates.No action to be taken for rows where value in column 5 is unique. Second point : For... (1 Reply)
Discussion started by: as7951
1 Replies

2. Shell Programming and Scripting

Bring values in the second column into single line (comma sep) for uniq value in the first column

I want to bring values in the second column into single line for uniq value in the first column. My input jvm01, Web 2.0 Feature Pack Library jvm01, IBM WebSphere JAX-RS jvm01, Custom01 Shared Library jvm02, Web 2.0 Feature Pack Library jvm02, IBM WebSphere JAX-RS jvm03, Web 2.0 Feature... (10 Replies)
Discussion started by: kchinnam
10 Replies

3. UNIX for Dummies Questions & Answers

Match sum of values in each column with the corresponding column value present in trailer record

Hi All, I have a requirement where I need to find sum of values from column D through O present in a CSV file and check whether the sum of each Individual column matches with the value present for that corresponding column present in the trailer record. For example, let's assume for column D... (9 Replies)
Discussion started by: tpk
9 Replies

4. Shell Programming and Scripting

Sum column values based in common identifier in 1st column.

Hi, I have a table to be imported for R as matrix or data.frame but I first need to edit it because I've got several lines with the same identifier (1st column), so I want to sum the each column (2nd -nth) of each identifier (1st column) The input is for example, after sorted: K00001 1 1 4 3... (8 Replies)
Discussion started by: sargotrons
8 Replies

5. Shell Programming and Scripting

awk to sum a column based on duplicate strings in another column and show split totals

Hi, I have a similar input format- A_1 2 B_0 4 A_1 1 B_2 5 A_4 1 and looking to print in this output format with headers. can you suggest in awk?awk because i am doing some pattern matching from parent file to print column 1 of my input using awk already.Thanks! letter number_of_letters... (5 Replies)
Discussion started by: prashob123
5 Replies

6. Shell Programming and Scripting

Sum up the column values group by using some field

12-11-2012,PNL,158406 12-11-2012,RISK,4564 12-11-2012,VAR_1D,310101 12-11-2012,VAR_10D,310101 12-11-2012,CB,866 12-11-2012,STR_VAR_1D,298494 12-11-2012,STR_VAR_10D,309623 09-11-2012,PNL,1024106 09-11-2012,RISK,4565 09-11-2012,VAR_1D,317211 09-11-2012,VAR_10D,317211 09-11-2012,CB,985... (7 Replies)
Discussion started by: manas_ranjan
7 Replies

7. Shell Programming and Scripting

Sum of column by group wise

Hello All , I have a problem with summing of column by group Input File - COL_1,COL_2,COL_3,COL_4,COL_5,COL_6,COL_7,COL_8,COL_9,COL_10,COL_11 3010,21,1923D ,6,0,0.26,0,0.26,-0.26,1,200807 3010,21,192BI ,6,24558.97,1943.94,0,1943.94,22615.03,1,200807 3010,21,192BI... (8 Replies)
Discussion started by: jambesh
8 Replies

8. Shell Programming and Scripting

Merge group numbers and add a column containing group names

Hi All I do have a file like this with 6 columns. Groups of data merge together and the group number is indicated above each group. 1 1 12 26 289 3.2e-027 GCGTATGGCGGC 2 12 26 215 6.7e+006 TTCCACCTTTTG 3 9 26 175 ... (1 Reply)
Discussion started by: Lucky Ali
1 Replies

9. Shell Programming and Scripting

Merge group numbers and add a column containing group names

I have a file in the following format. Groups of data merge together and the group number is indicated above each group. 1 adrf dfgr dfg 2 dfgr dfgr 3 dfef dfr fd 4 fgrt fgr fgg 5 fgrt fgr (3 Replies)
Discussion started by: Lucky Ali
3 Replies

10. Shell Programming and Scripting

How to calculate a sum of certain records?

Hi, i have a file where the records are like this. vt100 2048 D402 MG0010 0 586 262144 D403 MG0011 1000 486 8192 D404 MG0012 270 386 8192 A423 CC0177 40 586 65536 A424 CC0182 670 486 16384 A423 CC0183 100 486 16384 A425 CC0184 80 65000 4096 B407 EE1027 80 I want firstly, to count how... (10 Replies)
Discussion started by: sickboy
10 Replies

Featured Tech Videos