2015-05-14 2 views
4

У меня есть этот вид:Как использовать SELECT, внутри COUNT в MYSQL

MyView: (ID, в процентах)

Я хочу сделать еще один вид, которым будет выглядеть следующим образом:

LASTVIEW: (lastID, lastPR, counter)

и в «counter», в строке evrey Я хочу иметь, как у money id `s есть больший процент, чем процент этой линии. поэтому я пробовал:

CREATE VIEW LASTVIEW(lastID, lastPR, counter) AS 
SELECT id AS lastID, percent AS lastPR 
COUNT (SELECT id FROM myVIEW WHERE percent < lastPR) AS counter, 
FROM myVIEW; 
+0

Используйте другой запрос в качестве подзапроса в вашем 'от'. Прочитайте [this] (https://dev.mysql.com/doc/refman/5.0/en/from-clause-subqueries.html) – adarsh

ответ

3

Ваши проблемы почти все. Попробуйте это:

SELECT id AS lastID, percent AS lastPR, (SELECT Count(id) 
FROM myVIEW bigger 
WHERE bigger.percent > myv.percent) AS counter 
FROM myVIEW myv 
+0

он работает! благодаря! , но у меня странная ошибка сегментации (ядро сбрасывается)! – Atheel

+0

Вы знаете, почему Сегментация? – Atheel

+0

У меня нет идей, как система базы данных получает ошибку сегментации. Используете ли вы свою собственную программу для запуска запроса? Если это так, нам нужно проверить свой код. – Tim3880

0

Используйте следующий запрос на выборку для создания вашего зрения

SELECT lastID,lastPR,counter 
FROM (SELECT A.id AS lastID,A.percent AS lastPR,count(B.id) AS counter 
FROM myVIEW A,myVIEW B WHERE B.percent<A.percent 
GROUP BY A.id,A.percent) 
Смежные вопросы