简体   繁体   中英

MySQL Query for averages

good morning. I have this table:

mysql> select * from Data;
+---------------------------+--------+-------+
| affyId                    | exptId | level |
+---------------------------+--------+-------+
| 31315_at                  | 3      |   250 |
| 31324_at                  | 3      |    91 |
| 31325_at                  | 1      |   191 |
| 31325_at                  | 2      |   101 |
| 31325_at                  | 4      |    51 |
| 31325_at                  | 5      |    71 |
| 31325_at                  | 6      |    31 |
| 31356_at                  | 3      |    91 |
| 31362_at                  | 3      |   260 |
| 31510_s_at                | 3      |   257 |
| 5321_at                   | 4      |    90 |
| 5322_at                   | 4      |    90 |
| 5323_at                   | 4      |    90 |
| 5324_at                   | 3      |    57 |
| 5324_at                   | 4      |    90 |
| 5325_at                   | 4      |    90 |
| AFFX-BioB-3_at            | 3      |    97 |
| AFFX-BioB-5_at            | 3      |    20 |
| AFFX-BioB-M_at            | 3      |    20 |
| AFFX-BioB-M_at            | 5      |   214 |
| AFFX-BioB-M_at            | 7      |    20 |
| AFFX-BioB-M_at            | 8      |    40 |
| AFFX-BioB-M_at            | 9      |    20 |
| AFFX-HSAC07/X00351_M_at   | 3      |    86 |
| AFFX-HUMBAPDH/M33197_3_st | 3      |   277 |
| AFFX-HUMTFFR/M11507_at    | 3      |    90 |
| AFFX-M27830_3_at          | 3      |   271 |
| AFFX-MurIL10_at           | 3      |     8 |
| AFFX-MurIL10_at           | 5      |     8 |
| AFFX-MurIL10_at           | 6      |     4 |
| AFFX-MurIL2_at            | 3      |    20 |
| AFFX-MurIL4_at            | 5      |    78 |
| AFFX-MurIL4_at            | 6      |    20 |
| U95-32123_at              | 1      |   128 |
| U95-32123_at              | 2      |   128 |
| U98-40474_at              | 1      |    57 |
| U98-40474_at              | 2      |    57 |
+---------------------------+--------+-------+
37 rows in set (0.00 sec)

If I wanna look for the average expression level (level) of each array probe (affyId) across all experiments, I do SELECT affyId, AVG(level) AS average FROM Data GROUP BY affyId;

However, I can't figure out how to look for the average expression level of each array probe (affyId) for each experiment... It must be something similar to the last query, but I don't obtain good results... any help?

PD: someone told me I should give some reputation or click to some green button if somebody solves my question... Is it right? How do I do it? I'm pretty new on this website...

Just add that to the group by clause

SELECT affyId, exptId, AVG(level) AS average 
FROM Data
GROUP BY affyId, exptId;

This shows the average for every affyId:

SELECT affyId, AVG(level) AS average FROM Data GROUP BY affyId

This the average for every exptId:

SELECT exptId, AVG(level) AS average FROM Data GROUP BY exptId

and this the average for every exptId in every affyId:

SELECT affyId, exptId, AVG(level) AS average FROM Data GROUP BY exptId, affyId

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM