#sql #sql-server #sql-server-2012
#sql #sql-сервер #sql-сервер-2012
Вопрос:
ID | Результат |
---|---|
KLLR | 1 |
KLLR | 2 |
KLLR | 3 |
KLLR | 4 |
OLRQ | 1 |
OLRQ | 2 |
ПКРД | 1 |
ПКРД | 2 |
ПКРД | 3 |
Значение приращения SQL от 1 до и далее на основе других полей, и результатом является выходное вычисляемое поле. Пожалуйста, просмотрите изображение для большей четкости. А ниже приведен мой SQL, который я пробовал. Я хочу, чтобы результат был в другом вычисляемом поле, как вы можете видеть на изображении.
SELECT id, SUM(COUNT(id)) AS result FROM t1 GROUP BY id
Комментарии:
1. Пожалуйста, пометьте соответствующим образом. MySQL и SQL Server-это совершенно разные продукты с разными диалектами SQL.
Ответ №1:
Простой номер строки должен работать для вас здесь:
SELECT id, ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) AS Result FROM t1;
Вы отметили как MySQL, так и SQL Server. Обратите внимание, что это совершенно разные продукты, но одно и то же должно работать в обоих. MySQL представлен ROW_NUMBER()
в версии 8.0.
К комментарию Хансга,
SELECT id, ROW_NUMBER() OVER (PARTITION BY id ORDER BY (SELECT NULL)) AS Result FROM t1;
даст вам упомянутый случайный порядок.
Комментарии:
1. Спасибо, что ответили. Однако я получил эту ошибку после написания приведенного выше запроса «Msg 4112, уровень 15, Состояние 1, Строка 1 Функция ‘ROW_NUMBER’ должна иметь предложение OVER с ПОРЯДКОМ ПО».
2. Тогда вам нужно знать версию и фактическую СУБД
3. Вы можете добавить заказ по (ВЫБЕРИТЕ NULL) для случайного заказа или использовать любой столбец, который вы хотите заказать, указав имя
4. Я использую SQL Server 2012.
5. @SalmanSabir Я исправил твои теги. Я также исправил свой пост, см. Обновление. Извините, я изначально пропустил ЗАКАЗ МИМО ушей….