Sponsored Content
Top Forums Shell Programming and Scripting Sum Of Column Based On Column Condition Post 302797369 by siramitsharma on Monday 22nd of April 2013 12:55:34 PM
Old 04-22-2013
Sum Of Column Based On Column Condition

I have a following inputfile

Code:
MT,AP,CDM,TTML,MUM,GS,SUCC,3
MT,AP,CDM,TTSL,AP,GS,FAIL,9
MT,AP,CDM,RCom,MAH,GS,SUCC,3
MT,AP,CDM,RTL,HP,GS,SUCC,1
MT,AP,CDM,Uni,UPE,GS,SUCC,2
MT,AP,CDM,Uni,MUM,GS,SUCC,2
TTSL,AP,GS,MT,MAH,CDM,SUCC,20
TTML,AP,GS,MT,MAH,CDM,FAIL,10
Uni,KOL,GS,MT,DEL,CDM,SUCC,100
Uni,KOL,GS,MT,HAR,CDM,SUCC,200

Need following o/p based on first field & last field. Conditions are as follows
1. if $1 is MT && $4 not between 0 to 9
then sum column $8
2. Also TTSL + TTML(new name = TT) & Rcom + RTL (new name = RR) values to be clubbed for summing up $8
3. $1 not between 0 to 9 & $4 is MT

So o/p should look like
Code:
MT,TT,12 
MT,RR,4 
MT,Uni,4
TT,MT,30
Uni,MT,300

Code:
awk -F, ' {if($1=="MT" && 4 !~ "[0-9]") sum = sum + $8 } END{print $1","sum} ' inputfile

But the o/p is not coming correctly... Please help

Last edited by Scrutinizer; 04-23-2013 at 02:07 AM.. Reason: File name; icode tags changed to code tags
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sum of column with condition

1 IT 50 2 IT 40 3 Finance 200 4 MP 30 5 MP 10 6 HQ 30 how to use awk to make it display it like this IT 90 MP 40 HQ 30 Finance 200 (1 Reply)
Discussion started by: minwei86
1 Replies

2. UNIX for Dummies Questions & Answers

How do I sum one column based on another column?

Hi, I am new to this forum and new to awk. I have a file that contains 2 columns. Heres an example of what it looks like: 10 + 20 + 40 + 50 - 70 - So the file is tab-delimited. What I want to do is add 10 to column 1 whenever column 2 is + and substract 10 from column 1... (1 Reply)
Discussion started by: phil_heath
1 Replies

3. Shell Programming and Scripting

to add special tag to a column based on column condition

Hi All, I have following html code <TR><TD>9</TD><TD>AR_TVR_TBS </TD><TD>85000</TD><TD>39938</TD><TD>54212</TD><TD>46</TD></TR> <TR><TD>10</TD><TD>ASCV_SMY_TBS </TD><TD>69880</TD><TD>33316</TD><TD>45698</TD><TD>47</TD></TR> <TR><TD>11</TD><TD>ARC_TBS ... (9 Replies)
Discussion started by: ckwan
9 Replies

4. UNIX for Dummies Questions & Answers

Sum based on column 1

i have file input aaa ccc,45567,rterw,1 bbb dcs,564543,hjghgh,1 aaa ccc,454,rterw,6 i want to sum based on column 1 expected output aaa ccc,7 bbb dcs,1 (4 Replies)
Discussion started by: radius
4 Replies

5. UNIX for Dummies Questions & Answers

Sum based on certain column

I have file 1 1/1/2013 A 553.0763397 96 16582 X1 X3 X5 X7 X9 1/1/2013 B 600.8333588 195 11992 X2 X3 X6 X7 X9 1/1/2013 B 459.8333588 195 11992 X1 X3 X6 X7 X9 1/2/2013 A 844.2973022 306 19555 X1 ... (12 Replies)
Discussion started by: radius
12 Replies

6. 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

7. Shell Programming and Scripting

Check first column - average second column based on a condition

Hi, My input file Gene1 1 Gene1 2 Gene1 3 Gene1 0 Gene2 0 Gene2 0 Gene2 4 Gene2 8 Gene3 9 Gene3 9 Gene4 0 Condition: If the first column matches, then look in the second column. If there is a value of zero in the second column, then don't consider that record while averaging. ... (5 Replies)
Discussion started by: jacobs.smith
5 Replies

8. 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

9. Shell Programming and Scripting

Sum of a column as new column based on header in a script

Hello, I am trying to store sum of a column as a new column inside a file but have to find the column names dynamically I/p c1,c2,c3,c4,c5 10,20,30,40,50 20,30,40,50,60 If i want to find sum only column c1, c3 and output it as c6,c7 O/p c1,c2,c3,c4,c5,c6,c7 10,20,30,40,50,30,70... (6 Replies)
Discussion started by: mkathi
6 Replies

10. UNIX for Beginners Questions & Answers

Sum in file based column

Hi All, I have a file as below and want to sum based on the id in the first column Input 10264;ATE; 12 10265;SES;11 10266AUT;50 10264;ATE;10 10265;SES;13 10266AUT;89 10264;ATE;1 10265;SES;15 10266AUT;78 Output 10264;ATE; 23 10265;SES;39 10266AUT;139 (6 Replies)
Discussion started by: arunkumar_mca
6 Replies
CUBRID_NEXT_RESULT(3)							 1						     CUBRID_NEXT_RESULT(3)

cubrid_next_result - Get result of next query when executing multiple SQL statements

SYNOPSIS
bool cubrid_next_result (resource $result) DESCRIPTION
The cubrid_next_result(3) function is used to get results of next query if multiple SQL statements are executed and CUBRID_EXEC_QUERY_ALL flag is set upon cubrid_execute(3). PARAMETERS
o $result -$result comes from a call to cubrid_execute(3) RETURN VALUES
TRUE, when process is successful. FALSE, when process is unsuccessful. EXAMPLES
Example #1 cubrid_next_result(3) example <?php $conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba"); $sql_stmt = "SELECT * FROM code; SELECT * FROM history WHERE host_year=2004 AND event_code=20281"; $res = cubrid_execute($conn, $sql_stmt, CUBRID_EXEC_QUERY_ALL); get_result_info($res); cubrid_next_result($res); get_result_info($res); function get_result_info($req) { printf(" ------------ get_result_info -------------------- "); $row_num = cubrid_num_rows($req); $col_num = cubrid_num_cols($req); $column_name_list = cubrid_column_names($req); $column_type_list = cubrid_column_types($req); $column_last_name = cubrid_field_name($req, $col_num - 1); $column_last_table = cubrid_field_table($req, $col_num - 1); $column_last_type = cubrid_field_type($req, $col_num - 1); $column_last_len = cubrid_field_len($req, $col_num - 1); $column_1_flags = cubrid_field_flags($req, 1); printf("%-30s %d ", "Row count:", $row_num); printf("%-30s %d ", "Column count:", $col_num); printf(" "); printf("%-30s %-30s %-15s ", "Column Names", "Column Types", "Column Len"); printf("------------------------------------------------------------------------------ "); $size = count($column_name_list); for($i = 0; $i < $size; $i++) { $column_len = cubrid_field_len($req, $i); printf("%-30s %-30s %-15s ", $column_name_list[$i], $column_type_list[$i], $column_len); } printf(" "); printf("%-30s %s ", "Last Column Name:", $column_last_name); printf("%-30s %s ", "Last Column Table:", $column_last_table); printf("%-30s %s ", "Last Column Type:", $column_last_type); printf("%-30s %d ", "Last Column Len:", $column_last_len); printf("%-30s %s ", "Second Column Flags:", $column_1_flags); printf(" "); } ?> The above example will output: ------------ get_result_info -------------------- Row count: 6 Column count: 2 Column Names Column Types Column Len ------------------------------------------------------------------------------ s_name char 1 f_name varchar 6 Last Column Name: f_name Last Column Table: code Last Column Type: varchar Last Column Len: 6 Second Column Flags: ------------ get_result_info -------------------- Row count: 4 Column count: 5 Column Names Column Types Column Len ------------------------------------------------------------------------------ event_code integer 11 athlete varchar 40 host_year integer 11 score varchar 10 unit varchar 5 Last Column Name: unit Last Column Table: history Last Column Type: varchar Last Column Len: 5 Second Column Flags: not_null primary_key unique_key SEE ALSO
cubrid_execute(3). PHP Documentation Group CUBRID_NEXT_RESULT(3)
All times are GMT -4. The time now is 11:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy