Как удалить с группы вк все записи: Как быстро удалить все записи со стены «ВКонтакте»

mysql — удаление всех записей, кроме самой последней, из одной таблицы SQL

спросил

Изменено 7 лет, 5 месяцев назад

Просмотрено 262 раза

У меня есть одна таблица SQL, которая содержит несколько записей для каждого идентификатора клиента (у некоторых идентификаторов клиентов есть только одна запись, которую я хочу сохранить). Мне нужно удалить все, кроме самой последней записи для каждого идентификатора клиента, используя поле invoiceDate в качестве маркера.

Итак, мне нужно перейти от этого:

 +------------+-------------+---------- -+
| идентификатор клиента | Дата счета-фактуры | ID счета |
+------------+--------------+------------+
| 1 | 1393995600 | хх |
| 1 | 1373688000 | хх |
| 1 | 1365220800 | хх |
| 2 | 1265220800 | хх |
| 2 | 1173688000 | хх |
| 3 | 1325330800 | хх |
+------------+--------------+------------+
 

К этому:

 +------------+-------------+-----------+
| идентификатор клиента | Дата счета-фактуры | ID счета |
+------------+--------------+------------+
| 1 | 1393995600 | хх |
| 2 | 1265220800 | хх |
| 3 | 1325330800 | хх |
+------------+--------------+------------+
 

Будем признательны за любые рекомендации!

  • MySQL
  • SQL

3

  1. Напишите запрос, чтобы выбрать все строки, которые вы хотите удалить:
 ВЫБРАТЬ * ИЗ т
ГДЕ накладнаяДата НЕ В (
    ВЫБЕРИТЕ МАКС(дата счета)
    -- "FROM t AS t2" не поддерживается MySQL, см.  http://stackoverflow.com/a/14302701/227576.
    ИЗ (ВЫБРАТЬ * ИЗ t) КАК t2
    ГДЕ t2.customerId = t.customerId
    СГРУППИРОВАТЬ ПО t2.customerId
)
 

Для большой базы данных это может занять много времени.

  1. Если вы удовлетворены, измените запрос на оператор DELETE:
 УДАЛИТЬ ИЗ t
ГДЕ накладнаяДата НЕ В (
    ВЫБЕРИТЕ МАКС(дата счета)
    -- "FROM t AS t2" не поддерживается MySQL, см. http://stackoverflow.com/a/14302701/227576.
    ИЗ (ВЫБРАТЬ * ИЗ t) КАК t2
    ГДЕ t2.customerId = t.customerId
    СГРУППИРОВАТЬ ПО t2.customerId
)
 

См. http://sqlfiddle.com/#!9/6e031/1

Если у вас есть несколько строк, дата которых является самой последней для одного и того же клиента, вам придется искать дубликаты и решать, какой из них вы хотите держать себя. Например, посмотрите на customerId 2 в приведенной выше ссылке скрипта SQL.

2

Попробуйте этот

 с todelete как
(
            выбирать
            CustomerId, InvoiceId, InvoiceDate, Row_Number() over (раздел по заказу CustomerId по описанию InvoiceDate) как Count
             из УдалитьДубликат
)
удалить из toудалить
где количество > 1
 

Предположим, что имя таблицы transaction_table .

 создать таблицу test1 AS
выберите из (
  выберите * из таблицы транзакций по заказу по идентификатору клиента, invoiceDate desc) temp
группировка по идентификатору клиента
 

У вас будут выходные данные в таблице test1 .

1

 удалить из ex_4 где
рядок в
(выберите идентификатор строки
от ex_4 а
где to_date(invoicedate,'DDMMYYYY') = (выберите max(to_date(invoicedate,'DDMMYYYY')) из ex_4 b где a.customerid != b.customerid))
 

Вот как это будет сделано в oracle. Этот запрос удалит все, кроме самой последней добавленной строки. Глядя на структуру вашей таблицы, я предполагаю, что столбец invoicedate имеет тип varchar2, поэтому преобразование его в дату использовало функцию to_date здесь

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Virat Kohli Дебют и последние сыгранные матчи в форматах Tests, ODI, T20I и других

Virat Kohli Дебют и последние сыгранные матчи в форматах Tests, ODI, T20I и других форматах

Матчи (18)

WT20 WC (3)

UAE v АФГ (1)

PSL 2023 (3)

IND v AUS (1)

NZ v ENG (1)

Ranji Trophy (1)

ENG-U19 в Австралии (1)

NSL 4-90 Day (05)

CWC League 2 (1)

CSA 4-дневный Div1 (4)

Результат • Только молодежь T20I • Brisbane

ENG19

(20/20 OV) 158/8

AUS19

(17. 1/ 20 ov, T:159) 162/0

Aust U19 выиграла с разницей в 10 калиток (осталось 17 мячей)

РасписаниеСерия

RESULT • 9th Match • NSL 4-Day •  FC •  Hambantota

DAM

341 &  401

COLBO

(T:486) 257 &  110/3

Match drawn

ScheduleTableSeries

RESULT • 10th Match • NSL 4-Day •  FC •  Galle

JFNA

130 &  584/9d

GALLE

(T:457) 258 &  50/3

Match Drawn

MadeLetableseries

Сегодня, 14:00 • 9 -й матч • PSL 2023 • T20 • Karachi

Quetta Gladiators

Peshawar Zalmi

Match еще не начался

Prediculetableseries

Not Copt Live CSA, 4 дня, DIV1 •  FC •  Potchefstroom

NWEST

WPR

null

ScheduleTableSeries

Не покрывается Live • 18-й матч • CSA 4-Day DIV1 90•  2 FC IT • 0 Pretoria 00005

BOL

null

ScheduleTableSeries

India|Top order Batter

INTL CAREER: 2008 — 2023

Most viewed players

  • Ravindra Jadeja
  • Srikar Bharat
  • Ravichandran Ashwin
  • Virat Kohli
  • Cheteshwar Pujara
  • Рохит Шарма
  • КЛ Рахул
  • Аксар Патель
  • Арпит Васавада
  • Сачин Тендулкар

Дополнительные ссылки

  • Contracted Players
  • Test Caps
  • ODI Caps
  • T20I Caps
  • WTEST Caps
  • WODI Caps
  • WT20I Caps

Browse other players

Bangladesh

  • Afif Hossain
  • Литтон Дас
  • Мехиди Хасан Мираз
  • Мосаддек Хоссейн
  • Мустафизур Рахман
  • Наджмул Хоссейн Шанто
  • Нурул Хасан
  • Shakib Al Hasan
  • Shoriful Islam
  • Taskin Ahmed

Alphabetically sorted top ten of players who have played the most matches across formats in the last 12 months

Overview

Stats

Records

Matches

Videos

Новости

Фотографии

Дебют/последние матчи — Игрок

Тестовые матчи

Просмотр протоколов тестов

Дебют

Вест-Индия против Индии в Кингстоне — 20-23 июня 2011 г. 0005

Последний

Индия против Австралии в Дели — 17 — 19 февраля, 2023

Matches ODI

View ODI Records

Дебют

Шри -Ланка против Индии в Дамбалле — 18 августа 2008 г.

Последняя

Индия против Индии по сравнению с Дамбаллой — 18 августа

Новая Зеландия в Индоре — 24 января 2023 г.

T20I Матчи

View T20I Records

Дебют

Зимбабве против Индии в Хараре — 12 июня 2010 г.

Последний

Индия против Англии в Аделеиде — 10 ноября, 2022

Индия против Англии.0005

Matches FC

Дебют

Тамилнаду против Дели в Дели — 23 — 26 ноября 2006 г.

Последний

Индия против Австралии в Дели — 17 — 19000

Дебют

Delhi vs Services в Дели — 18 февраля 2006 г.

Последний

Индия против Новой Зеландии в Индоре — 24 января 2023 г.

T20 Матчи

Дебют

Delhi Vs Himachal At Delhi — Apry.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закрыть
Menu