2013-03-12 4 views
0

Вот часть моей MySQL структуры таблицы:Топ 10 записей из двух полей на одной таблице MySQL

questionRecID  value periodMonth  periodYear  practiceID 
      16   70   11   2010    475 
      28   33   11   2010    475 
      14   226   11   2010    475 

Вопрос Rec ID 14 знаменатель используется для расчета проценты. Таким образом, выглядит следующим образом:

percent = (70/226) * 100. Это дает мне процент на вопрос о rec ID 16 за ноябрь 2010 года.

Мне нужно запросить всю таблицу, чтобы получить 10 лучших практик в течение всех лет и месяцев. Либо php, либо SQL в порядке со мной. Я действительно зациклился на том, как получить данные из этой таблицы.

+4

Что вы пытаетесь? Мне показалось странным, что 'questionRecID = 14' имеет такую ​​специфическую цель. –

+1

Я ничего не понимаю, вы делаете 70/226, а как насчет id = 28? –

+0

Вопрос 14 является знаменателем для вычисления процента вопроса 16. Как и в случае: q14 - Сколько пациентов имеет астму, q16 - Сколько пациентов классифицировано астмой как постоянное – user2160174

ответ

0
DROP TABLE IF EXISTS my_table; 
CREATE TABLE my_table (questionRecID  INT NOT NULL PRIMARY KEY,value INT NOT NULL,periodMonth  INT NOT NULL, periodYear  INT NOT NULL, practiceID INT NOT NULL); 
INSERT INTO my_table VALUES 
(16   ,70   ,11   ,2010    ,475 ), 
(28   ,33   ,11   ,2010    ,475), 
(14   ,226   ,11   ,2010    ,475); 

SELECT * FROM my_table; 
+---------------+-------+-------------+------------+------------+ 
| questionRecID | value | periodMonth | periodYear | practiceID | 
+---------------+-------+-------------+------------+------------+ 
|   14 | 226 |   11 |  2010 |  475 | 
|   16 | 70 |   11 |  2010 |  475 | 
|   28 | 33 |   11 |  2010 |  475 | 
+---------------+-------+-------------+------------+------------+ 

SELECT x.* 
    , x.value/y.value pct 
    FROM my_table x 
    JOIN my_table y 
    ON y.practiceid = x.practiceid 
    AND y.questionrecid = 14; 
+---------------+-------+-------------+------------+------------+--------+ 
| questionRecID | value | periodMonth | periodYear | practiceID | pct | 
+---------------+-------+-------------+------------+------------+--------+ 
|   14 | 226 |   11 |  2010 |  475 | 1.0000 | 
|   16 | 70 |   11 |  2010 |  475 | 0.3097 | 
|   28 | 33 |   11 |  2010 |  475 | 0.1460 | 
+---------------+-------+-------------+------------+------------+--------+ 
+0

Это сделало это. Большое спасибо!! – user2160174

Смежные вопросы