#mysql #sql
#mysql #sql
Вопрос:
Я бы хотел подсчитать записи в столбце и отобразить количество рядом с ним. Тем не менее, я не знаю, как я могу это сделать.
Желаемый результат:
arrangement_number tray_no rl_type flag(count of occurrence)
------------------ ------- ---- ----
2774818 381001 R 3
2774818 381001 R 3
2774818 381001 L 3
2778470 405128 R 1
2779702 265265 R 2
2779702 265265 R 2
В настоящее время я пытаюсь использовать запросы @variables
, но я все еще не могу понять это правильно.
каждая строка уникальна, и мне нужно, чтобы они не группировались.
Обновление: в расширенную таблицу добавлен исходный код
Примечание: в настоящее время я присоединяюсь к 5 таблицам
Фактический запрос:
SELECT
log.arrangement_number,
header.tray_number,
detail.rl_type,
-- some more fields here
FROM
log
INNER JOIN
header ON log.arrangement_number = header.rxarrangement_number
AND log.production_place_code = header.production_place_code
INNER JOIN
detail ON log.arrangement_number = detail.rxarrangement_number
AND log.production_place_code = detail.production_place_code
INNER JOIN
deliveryperiod ON log.arrangement_number = deliveryperiod.arrangement_number
AND log.production_place_code = deliveryperiod.production_place_code
AND detail.rl_type = deliveryperiod.rl_type
INNER JOIN
calc ON calc.arrangement_number = log.arrangement_number
AND calc.production_place_code = log.production_place_code
AND deliveryperiod.rl_type = calc.rl_type
AND detail.rl_type = calc.rl_type
WHERE
header.status_code IN ('20' , '21')
AND log.process_code = '12'
AND deliveryperiod.process_code_current = '12'
AND deliveryperiod.sub_process_code_current IN ('100' , '105')
AND lot_number = '120131'
ORDER BY log.lot_number , log.sequence_number , deliveryperiod.rl_type DESC
Комментарии:
1.
SELECT tray_no, COUNT(*) AS flag FROM table GROUP BY tray_no
.2. @FelixPamittan Осторожно: если он хочет также сохранить все исходные записи, то вам, вероятно, придется использовать подзапрос.
3. Я не могу использовать
GROUP BY
, мне нужны флаги для каждой строки. Я уменьшил его.4. Структура таблицы и примеры данных были бы полезны… Вы ищете
mysql
эквивалентcount/over
? @TimBiegeleisen предлагает хорошее решение ниже. Альтернативы включают коррелированные подзапросы и определяемые пользователем переменные…5. Добавлен исходный код. Я возился с этим запросом со вчерашнего дня..
Ответ №1:
SELECT t1.tray_no,
t2.flag
FROM yourTable
INNER JOIN
(
SELECT tray_no, COUNT(*) AS flag
FROM yourTable
GROUP BY tray_no
) t2
ON t1.tray_no = t2.tray_no
Ответ №2:
попробуйте это…
SELECT tray_no, COUNT(*) 'flag'
FROM table1
GROUP BY tray_no